我想通过使用实体框架核心来创建具有一对多关系的树。 当我创建Node1时,NodeId = 1.然后创建Node2,NodeId = 2,使用在Db中不存在的ParentId = xxx。 Node2在Db中成功创建没有任何问题。我希望会抛出异常,但事实并非如此。我必须检查ParentId是否存在于Db中。 Entity Framework是否对我进行了ParentId的存在检查?或者,如何让EF自动执行此操作?我现在自己做这个检查。
以下是我的节点类的示例代码:
public class Node
{
public string NodeId { get; set; }
public string Name { get; set; }
public string ParentId {get; set; }
public Node Parent {get; set; }
public ICollection<Node> Children { get; set; }
}
更新[2017/2/17]
我知道现在发生了什么!
最初我期望在DbSet执行Add()方法时抛出异常,但是在DbContex执行SaveChange方法(DbUpdateException)时它会抛出。
让SaveChange方法进行此项检查是一个不错的选择吗?
或者在添加之前进行此项检查?
我想我更喜欢第一名。办法。有什么建议或意见吗?