实体框架6代码首先检查可选关系

时间:2017-01-05 14:31:40

标签: entity-framework-6

我被困住了。

我在EF6 CodeFirst中有两个实体,让我们说:

class Child
{
    public virtual Parent AssignedParent { get; set; }
} 

class Container 
{
   public virtual ICollection<Child> Children { get; set; }
   public Child ActiveChild { get; set; }
   [NotMapped]
   public bool hasActiveChiled { get { return ?????; } }
}

后者的映射方式如下:

this.HasOptional(t => t.ActiveChild)
            .WithOptionalDependent(t => t.AssignedParent)
            .WillCascadeOnDelete(false);

逻辑:父母有很多孩子,但最多只有一个孩子是活跃的。

按预期生成表和关系。它几乎在所有情况下都很有效。

但是我有时需要测试是否有任何ActiveChild设置。 问题是当我不使用时,poperty为null。如果基础表列(自动生成为 ActiveChild_id )具有值或为null,则查询无关紧要。我不能总是确保为该属性包含.Include。您可能会注意到,ActiveChild不是虚拟的,因此根本不应该延迟加载。

1)有没有办法将生成的外键映射到属性?如果我只是添加它就无法工作,我无法找出能够产生我期望的其他配置。并且.WithOptionalDependent没有.WithForeignKey

2)有没有办法获得基础 ActiveChild_id 字段值?这对我有用。

谢谢

0 个答案:

没有答案