Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OData-如何扩展基本实体的导航属性_C#_Entity Framework 6_Asp.net Web Api2_Odata_Odata V4 - Fatal编程技术网

C# OData-如何扩展基本实体的导航属性

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

我正在使用Asp.NETWebAPI ODataV4和EntityFramework6。 我试图扩展一个派生类的导航属性,但遇到了以下错误

基本实体

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");