实体框架:一对一的关系,能够导航两个方向

时间:2017-03-03 22:05:25

标签: c# entity-framework associations one-to-one

嗨,我有一个Person和Passport实体。我在它们之间创建了一个2个关联,它运行得很好。我可以从Person导航到Passport,但是从Passport到Person返回null。以下是我如何进行映射:

modelBuilder.Entity<Person>().HasOptional(p => p.Passport)
.WithOptionalPrincipal(p => p.Person);

以下是实体:

public class Person
{
    public int Id { get; set; }

    public string Name { get; set; }

    public string LastName { get; set; }

    public Passport Passport { get; set; }
}

public class Passport
{
    public int Id { get; set; }

    public string Number { get; set; }

    public Person Person { get; set; }
}

如何才能导航两个方向?

1 个答案:

答案 0 :(得分:1)

您的问题是由于您遗漏了延迟加载的一项要求,即&#34;所有导航属性必须为virtual&#34;。如果类满足这些要求,则实体框架为POCO实体创建代理,并且那些代理类允许您在运行时加载相关实体,实现此功能的人称为lazy loading

您将在以下link

中找到所有这些要求