我正在开发新的实体模型。
我确定了几个自然需要继承的重复属性(列),如Id,CreatedBy,CreatedAt等。
现在,我为这个问题创建了一个基类,一切正常,直到我在基类中定义自定义类型属性,例如: 公共用户CreatedBy {get; set;}
运行应用程序时,抛出EngineExecutionException。
如果我省略公共用户CreatedBy {get; set;} 并且只保留int,string,DateTime属性,没关系,我可以看到它在数据库创建中反映出来。
我的错误是什么?
答案 0 :(得分:0)
我认为您的属性应该是虚拟的,这意味着此属性是外键。
答案 1 :(得分:0)
如果UserID是User表的一个键(比如说int),那么你就有了
public int UserID { get; set; }
public virtual User CreatedBy { get; set; }
UserID属性是对表中字段的直接引用。 CreatedBy属性是对User对象的引用,该对象将表示User表。如其他地方所述,virtual关键字用于使用户对象延迟加载。
UserID属性与User表和对象上的主键匹配。如果它们的命名不同,有很多方法可以匹配它们,但如果它们是最简单的话,它们就是最简单的。如果您可以为CreatedBy提供更多信息,例如类型,它在数据库中的表示方式等等。我可以为您的设置提供更具体的答案。
*已编辑格式化。