C# Entity Framework 与 class 中相同 class 的代码优先关系
C# Entity Framework code-first relationship to same class within the class
我一直在寻找与我类似的问题,但我还没有找到答案。
我正在尝试将一个人 class 与其他 2 种类型的 "Person"(SignificantOther 和 Match)联系起来,但出现以下错误:
Unable to determine the principal end of an association between the types 'Namespace.Models.Person' and 'Namespace.Models.Person'.
这是我的 class:
public class Person
{
public Person()
{
}
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Person SignificantOther { get; set; }
public Person Match { get; set; }
}
我尝试使用外键数据注释,但没有用(也许我做错了)。我觉得有一个简单的方法,我只是忽略了。有任何想法吗?
我先使用代码,然后使用 LocalDb。
我不得不使用 Fluent API,并添加一个可选的重要的其他人,以及匹配,与可选的主体。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Person>().HasOptional(p1 => p1.SignificantOther).WithOptionalPrincipal();
modelBuilder.Entity<Person>().HasOptional(m => m.Match).WithOptionalPrincipal();
}
感谢 CodeCaster 为我指明了正确的方向!
我一直在寻找与我类似的问题,但我还没有找到答案。
我正在尝试将一个人 class 与其他 2 种类型的 "Person"(SignificantOther 和 Match)联系起来,但出现以下错误:
Unable to determine the principal end of an association between the types 'Namespace.Models.Person' and 'Namespace.Models.Person'.
这是我的 class:
public class Person
{
public Person()
{
}
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Person SignificantOther { get; set; }
public Person Match { get; set; }
}
我尝试使用外键数据注释,但没有用(也许我做错了)。我觉得有一个简单的方法,我只是忽略了。有任何想法吗?
我先使用代码,然后使用 LocalDb。
我不得不使用 Fluent API,并添加一个可选的重要的其他人,以及匹配,与可选的主体。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Person>().HasOptional(p1 => p1.SignificantOther).WithOptionalPrincipal();
modelBuilder.Entity<Person>().HasOptional(m => m.Match).WithOptionalPrincipal();
}
感谢 CodeCaster 为我指明了正确的方向!