【发布时间】:2016-04-10 00:22:54
【问题描述】:
我正在从事的项目中有以下领域模型,它们是
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public virtual User { get; set; }
}
public class User
{
public int Id { get; set; }
public string LoginName { get; set; }
public string Password { get; set; }
}
我基本上有一个Person 实体和一个User 实体,没有User 可以存在Person,但是没有Person 就不能存在User。我也只希望单向加载 EF 中的关系(即,当我加载 Person 实体时,我想要 User 的导航属性,但不是相反)
我发现我必须在两个对象上创建关系属性才能实现关系映射,当然不希望这样做或必须在一个方向检查 NULL 的开销,我宁愿 User 实体没有它的Person 属性。
任何人都可以帮助定义正确的模型和关系映射以在运行时生成正确的 EF Code-First 配置和对象模型,我尝试了以下方法:
modelBuilder.Entity<Person>()
.HasOptional(t => t.User)
.WithRequired(t => t.Person)
.Map(x => x.MapKey("PersonId"))
.WillCascadeOnDelete();
这个实现的目标是使用 NULL 的 User 属性加载 Person 实体
如果有人能提供帮助,将不胜感激
【问题讨论】:
标签: c# entity-framework ef-code-first entity-framework-6 ef-fluent-api