一零一关系 ef codefrist

one-zero-one relation ef codefrist

我有3个class

public class StockDef
{
    public int Id { get; set; }
    public int StockType { get; set; }
    public virtual OfficeStock SayanStock { get; set; }
    public virtual AgentStock AgentStock { get; set; }
    //....
}

public class OfficeStock
{
    public virtual StockDef StockDef { get; set; }
    //....
}

public class AgentStock
{
    public virtual StockDef StockDef { get; set; }
    //......
}

每个 StockDef 对象肯定有(一个 OfficeStock 或一个 AgentStock)。
每个 OfficeStock 肯定有一个 StockDef。
每个 AgentStock 肯定有一个 StockDef。
我怎样才能在 EF Code 中首先通过流利的 API?
实现这一点 发送

您无法使用 fluent api 配置 StockDef(约束 "only one property can be compiled"),您必须添加实现 IValidatableObject 接口的自定义验证。

您还可以在数据库上添加一个约束(触发器?),这样您就可以避免其他人插入错误的记录。

还有,关于1-1关系配置你可以看这里