实体框架核心:Db

时间:2017-02-16 03:13:30

标签: database code-first entity-framework-core

我想通过使用实体框架核心来创建具有一对多关系的树。 当我创建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)时它会抛出。

  1. 让SaveChange方法进行此项检查是一个不错的选择吗?

  2. 或者在添加之前进行此项检查?

  3. 我想我更喜欢第一名。办法。有什么建议或意见吗?

0 个答案:

没有答案
相关问题