EF6新手。我有几个正在加载的类,但其中一个不好玩。
这是违规类
public class Family
{
public int FamilyId { get; set; }
public string Name { get; set; }
public string Standing { get; set; }
public virtual Person Father { get; set; }
public virtual Person Mother { get; set; }
public virtual Person Spouse { get; set; }
public virtual ICollection<Person> Siblings { get; set; }
public virtual ICollection<Person> Children { get; set; }
}
这是父类
public class Ven
{
public int VenId { get; set; }
...
public virtual Family Family { get; set; }
public virtual ICollection<Devotion> Devotions { get; set; }
...
}
正在运作的其他人之一
public class Devotion
{
public int DevotionId { get; set; }
public string Name { get; set; }
public int Rank { get; set; }
}
我用一粒曾经非常简单的种子填充它们,但随着我一直试图找出正在发生的事情而爆炸。
context.Families.AddOrUpdate(
f => f.FamilyId,
new Family
{
FamilyId = 1,
Name = "Tal",
Standing = "Baron",
Father = context.Persons.Find(1),
Mother = context.Persons.Find(2),
Children = new List<Person> {context.Persons.Find(3)}
}
);
...
Family = context.Families.Find(1)
...
Devotions = new List<Devotion> { context.Devotions.Find(1), context.Devotions.Find(2) },
我已经阅读了几篇SO帖子试图解决这个问题,但找不到任何有用的东西。
编辑1: 好吧,所以我尝试过一些东西。我完全删除了数据库并重新启动它。我仍然遇到同样的问题。
我已经确认家庭已添加到表格中。通过抛出错误,我已经确认ID是通过ID找到的。
但Ven Table仍未在其Family_FamilyId列中获取值,即使系列已分配给它。
编辑2: Entire Seed Function。这曾经是一个很大的“新Ven”。
答案 0 :(得分:0)
好吧,老实说,我不知道为什么,但是将Seed放入初始化器并将[new Ven]声明放回到一个巨大的添加中,使它再次开始工作。