C# OData-如何扩展基本实体的导航属性
我正在使用Asp.NETWebAPI ODataV4和EntityFramework6。 我试图扩展一个派生类的导航属性,但遇到了以下错误 基本实体C# OData-如何扩展基本实体的导航属性,c#,entity-framework-6,asp.net-web-api2,odata,odata-v4,C#,Entity Framework 6,Asp.net Web Api2,Odata,Odata V4,我正在使用Asp.NETWebAPI ODataV4和EntityFramework6。 我试图扩展一个派生类的导航属性,但遇到了以下错误 基本实体 public abstract class BaseEntity { [ForeignKey("CreatedUser")] public string CreatedBy { get; set; } public virtual User CreatedUser { get; set; } } 实体 public cl
public abstract class BaseEntity
{
[ForeignKey("CreatedUser")]
public string CreatedBy { get; set; }
public virtual User CreatedUser { get; set; }
}
实体
public class Book: BaseEntity
{
public int BookId {get;set;}
}
Odata模型生成器
builder.EntityType<BaseEntity>();
builder.EntitySet<Book>("Books");
错误:
输入类型为“App.Models.Book”和
不支持“App.Models.BaseEntity”类型的检查。唯一实体
LINQ到实体查询中支持类型和复杂类型
如何克服此问题?对于模型生成器,不要将
BaseEntity
注册为EntityType,而是使用具体类型:
builder.EntityType<Book>();
builder.EntitySet<Book>("Books");
builder.EntityType();
建筑商实体集(“账簿”);
这个问题看起来有点像。你能在这里找到答案吗?我想你不应该注册BaseEntity
@GertArnold不,即使我没有注册BaseEntity
@GWigWam尝试过这个建议,但对我来说不起作用。
builder.EntityType<Book>();
builder.EntitySet<Book>("Books");