带有中间类的EntityFramework InverseProperty
本文关键字:EntityFramework InverseProperty 中间 | 更新日期: 2023-09-27 18:08:49
我有三个类:
public class User
{
...
public List<SerialHistory> SerialHistory { get; set;}
...
}
public class SerialHistory
{
...
public DateTime DateAdded { get; set; }
public SerialNumber SerialNumber { get; set; }
...
}
public class SerialNumber
{
...
public User User { get; set; }
...
}
我真的希望当我这样做的时候:
user.SerialHistory.Add(new SerialHistory {
SerialNumber = serialNumber,
DateAdded = DateTime.Now
});
使serialNumber.User
自动获得user
。
这是可能的还是超出了EntityFramework的能力?
不,实体框架中没有特殊的选项来确保这一点。User.SerialHistory
和SerialNumber.User
是两种不同关系的导航属性。你所拥有的是一种特殊的业务逻辑,它不能被数据库中的外键关系强制执行,因此它不能被实体框架的任何映射(基本上只是表示外键关系)强制执行。
最好的选择可能是User
:
public void AddSerialNumber(SerialNumber serialNumber)
{
serialNumber.User = this;
SerialHistory.Add(new SerialHistory {
SerialNumber = serialNumber,
DateAdded = DateTime.Now
});
}