C#实体框架代码首先与类中的同一类建立关系

本文关键字:关系 建立 一类 框架 实体 代码 | 更新日期: 2023-09-27 18:22:35

我一直在寻找与我相似的问题,但我还没有找到答案。

我试图将一个person类与另外两种类型的"person"(显著其他和匹配)联系起来,但我得到了以下错误:

Unable to determine the principal end of an association between the types 'Namespace.Models.Person' and 'Namespace.Models.Person'.

这是我的课:

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。

C#实体框架代码首先与类中的同一类建立关系

我必须使用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为我指明了正确的方向!