假设我们有以下两个类。
class Donkey
{
public Guid Id { get; set; }
}
class Monkey
{
public Guid Id { get; set; }
public Donkey Donkey { get; set; }
}
我可以按如下方式配置关系。
protected override void OnModelCreating(DbModelBuilder model)
{
base.OnModelCreating(model);
model.HasDefaultSchema("dbo");
...
model.Entity<Monkey>
.HasRequired(_ => _.Donkey)
.WithMany()
.Map(_ => _.MapKey("DonkeyId"));
}
我想让它不是必需的,即 Donkey 属性可以 null 但是如果它不是,那么它就是&#39 ; s指向该表中的一行。
我不确定它是否可能,因为作为一个FK依赖于它的目标是一个PK,它永远不会是空的。但是,在C#中,它具有完美的意义。我可以有一个没有附件的自由奔跑的猴子(因为它的驴是 null )但我也可以给它分配一把驴子,我想要EF和导航属性来为我提供魔法。
有可能实现吗?
答案 0 :(得分:2)
您可以使用 HasOptional:
model.Entity<Monkey>
.HasOptional(_ => _.Donkey)
.WithMany()
.Map(_ => _.MapKey("DonkeyId"));