我被困住了。
我在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 字段值?这对我有用。
谢谢