Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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# 无法先在代码中继承自定义类型属性_C#_Oop_Entity Framework_Orm_Ef Code First - Fatal编程技术网

C# 无法先在代码中继承自定义类型属性

C# 无法先在代码中继承自定义类型属性,c#,oop,entity-framework,orm,ef-code-first,C#,Oop,Entity Framework,Orm,Ef Code First,我正在创建一个新的实体模型 我确定了几个自然需要继承的重复属性(列),如Id、CreatedBy、CreatedAt等 现在,我为这个问题创建了一个基类,在我在基类中定义自定义类型属性之前,一切正常,例如: 公共用户通过{get;set;}创建 运行应用程序时,会引发EngineeExecutionException 如果我省略了公共用户CreatedBy{get;set;}而只保留int、string、DateTime属性,这很好,我可以在数据库创建中看到它的反映 我的错误是什么?我认为您的属

我正在创建一个新的实体模型

我确定了几个自然需要继承的重复属性(列),如Id、CreatedBy、CreatedAt等

现在,我为这个问题创建了一个基类,在我在基类中定义自定义类型属性之前,一切正常,例如: 公共用户通过{get;set;}创建

运行应用程序时,会引发EngineeExecutionException

如果我省略了公共用户CreatedBy{get;set;}
而只保留int、string、DateTime属性,这很好,我可以在数据库创建中看到它的反映


我的错误是什么?

我认为您的属性应该是虚拟的,这意味着此属性是外键。

如果UserID是用户表的键(比如int),那么

public int UserID { get; set; }
public virtual User CreatedBy { get; set; }
UserID属性是对表中字段的直接引用。CreatedBy属性是对用户对象的引用,该对象将是用户表的表示形式。正如其他地方提到的,virtual关键字用于使用户对象延迟加载

UserID属性与用户表和对象上的主键匹配。如果它们的名称不同,有很多方法可以将它们匹配起来,但如果它们是相同的,则最简单。如果您可以提供CreatedBy的更多信息,例如类型、它在数据库中的表示方式等,我可以为您的设置提供更具体的答案


*编辑格式。

请发布整个异常和异常指向的代码。标记虚拟并不总是意味着外键虚拟启用本机延迟加载非虚拟导航使用eagar加载