我有3个班级:
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的功能?
答案 0 :(得分:1)
不,实体框架中没有特殊选项来确保这一点。 User.SerialHistory
和SerialNumber.User
是两种不同关系的导航属性。您所拥有的是一种特殊的业务逻辑,无法通过数据库中的外键关系强制执行,因此它不能通过任何映射(基本上只表示外键关系)与实体框架强制执行。
您最好的选择可能是User
的特殊方法:
public void AddSerialNumber(SerialNumber serialNumber)
{
serialNumber.User = this;
SerialHistory.Add(new SerialHistory {
SerialNumber = serialNumber,
DateAdded = DateTime.Now
});
}