我使用Asp.Net WebApi Odata V4和Entity Framework 6。 我试图扩展派生类的导航属性,但是我得到了错误。
基本实体
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");
Odata查询
http://localhost/svc/Books(1)?$expand=CreatedUser
错误:
&#39; TypeAs&#39;带有&#39; App.Models.Book&#39;类型的输入的表达式和a 检查类型&#39; App.Models.BaseEntity&#39;不受支持。只有实体 LINQ to Entities查询支持类型和复杂类型。
我如何克服这个问题?
答案 0 :(得分:0)
对于您的模型构建者,请勿将BaseEntity
注册为 EntityType ,而应使用具体类型:
builder.EntityType<Book>();
builder.EntitySet<Book>("Books");