one-zero-one relation ef codefrist

本文关键字:codefrist ef relation one-zero-one | 更新日期: 2023-09-27 18:09:43

我有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代码首先通过流畅的API?
tnx

one-zero-one relation ef codefrist

你不能用fluent api配置StockDef(约束"只能编译一个属性"),你必须添加一个实现IValidatableObject接口的自定义验证。

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

另外,关于1-1关系配置,您可以在这里查看当实体与外键有交叉引用

时,代码优先迁移