【发布时间】:2019-11-07 16:42:39
【问题描述】:
场景
我在我的 EFcontext 中定义了一些名为 Category 的实体。它是干净的 POCO 类。在 EFContext OnModelCreating 方法中,我应用实体配置。在我的创业公司中,我为我的查询配置 Odata 并基于 Conventional Builder 构建 EDM 模型。我的控制器继承自 ODataController,具有 ODataRoutePrefix、OdataRoute 和 EnableQuery 属性。
问题
在我收到的回复中:
{
"@odata.context": "https://localhost:44362/api/odata/$metadata#Categories",
"value": [
这不是错误。它以'['结尾。没有错误。 http状态:200
odata 配置
app.UseMvc(options =>
{
options.EnableDependencyInjection();
options.Select().Filter().OrderBy().Count().Expand().MaxTop(100).SkipToken();
options.MapODataServiceRoute("odata", "api/odata", GetEdmModel());
});
private static IEdmModel GetEdmModel()
{
ODataModelBuilder builder = new ODataConventionModelBuilder();
var category = builder.EntitySet<Category>("Categories");
category.EntityType.HasKey(c => c.Id);
return builder.GetEdmModel();
}
EF CategoryTypeConfiguration
public void Configure(EntityTypeBuilder<Category> categoryConfiguration)
{
categoryConfiguration.ToTable("Categories", QueryEFContext.DefaultSchema);
categoryConfiguration.HasKey(category => category.Id);
categoryConfiguration.Property(category => category.Name).IsRequired();
categoryConfiguration.Property(category => category.Color).IsRequired();
}
试过
当我删除行时它会返回正确的响应:
modelBuilder.ApplyConfiguration(new CategoryTypeConfiguration());
【问题讨论】:
标签: api entity-framework-core odata asp.net-core-2.2