实体框架类型和属性不映射(错误11007和11009)
问题描述:
我有先在实体框架6,.NET 4.7,Visual Studio的2017型号的麻烦......实体框架类型和属性不映射(错误11007和11009)
我试图加多到0 ... 1与两个表之间的外键,当我尝试验证模型时,我得到一个错误,说表中的外键字段没有映射。此外,我甚至无法将新实体添加到模型中,因为验证时出现错误,说实体未映射。它是如何进入这个状态的呢?我几乎没有使用它来做任何事情。
我该怎么做才能让它做到没有这些错误?我知道这是因为它没有映射的东西,但它应该自动做到这一点。整个事情似乎马虎,考虑到它的版本6.
我应该首先切换到数据库?
谢谢。
答
的一套关系许多到0 ... 1,则必须
1)创建模型和FluentApi在Context类机型中添加相关的实体
public class MainModel
{
public MainModel()
{
ChildModels= new HashSet<ChildModel>();
}
public int Id { get; set; }
public virtual ICollection<ChildModel> ChildModels{ get; set; }
}
public class ChildModel
{
public int Id { get; set; }
public int? MainModelId { get; set; }
public MainModel MainModel { get; set; }
}
2)套装关系
modelBuilder.Entity<MainModel>()
.HasMany(mm => mm.ChildModels)
.WithOptional(cm => cm.MainModel)
.HasForeignKey(cm => cm.MainModelId);
在其中一个步骤中,您可能会犯错。
数据库首先是旧的方法,我不建议你使用它。
好的谢谢你。我设法通过删除EF创建的所有实体并重建来实现它。这重新创建了实体和映射。验证模型,然后我可以生成数据库。可能我会坚持模型优先。 – indigo