我已经测试了模型中的其他表,但它们正在运行。但是,我添加了两个新表,它们不在模型中。
如何确保数据库表是模型的一部分?
此代码中未调用 OnModelCreating
。
The entity type AppToLeadRequestLine is not part of the model for the current context.
向表中添加项目时会抛出此异常。
public void Add<T>(T obj) where T : class
{
Set<T>().Add(obj);
}
我将这两个表添加到数据库中。
将这两个表添加到数据库后,我使用Update Model from Database
在模型中生成它们,并且两个表都出现在模型中。
当我查看表映射时,它们似乎映射到正确的POCO。我不是百分百肯定的。
这些类看起来像这样:
答案 0 :(得分:1)
OnModelCreating
未被调用 - 正如您所指出的那样 - 因此我可以确定您使用的是模型优先方法(并且不代码优先)。在这种情况下,您负责映射的所有。 Here is a good article on the topic
似乎RequestId
是AppToLeadRequest
类的外键 - 如果是这种情况,则必须自己在两个类中声明public virtual
语句。
例如 - 在AppToLeadRequest
类的底部,它应该包含:
public virtual ICollection<AppToLeadRequestLine> AppToLeadRequestLines { get; set; }
并且,在AppToLeadRequestLine
类的底部,它应该包含:
public virtual AppToLeadRequest AppToLeadRequest { get; set; }
我还会将RequestId
更改为AppToLeadRequestId
,以遵循<class name>Id
格式。