我有一个使用实体框架代码优先方法创建的DbContext类。这不是一个ASP.NET MVC / API项目。
此DbContext类具有类似的对象:
public virtual DbSet<Teacher> Teachers { get; set; }
public virtual DbSet<Student> Students { get; set; }
老师班上有 ICollection
学生{get;设置;}
现在,我想对已明确为其创建Microsoft.OData.Edm.IEdmModel的DbContext的DbSet对象执行oData查询,
ODataModelBuilder oDataModelBuilder = new ODataConventionModelBuilder();
oDataModelBuilder.EntitySet<Teacher>("Teachers");
oDataModelBuilder.EntitySet<Student>("Students");
IEdmModel edmModel = oDataModelBuilder.GetEdmModel();
然后,在下面的代码中使用IEdmModel之上的对象,以从中生成ODataQueryOptions ODataQueryContext。
ODataQueryContext oDataQueryContext = new ODataQueryContext(edmModel, typeof(Teacher), null);
return new ODataQueryOptions(oDataQueryContext, httpRequestMessage);
是否有任何方法可以直接从基于Entity Framework 6代码优先方法(也使用Fluent API)的DbContext类生成IEdmModel?
我已经检查了以下链接中给出的示例,但由于它们不能转换为Microsoft.OData.Edm.IEdmModel,而是转换为Microsoft.Data.Edm名称空间中的IEdmModel,因此它们无法正常工作
strong>。How do you build OData IEdmModel from Entity Framework model