代码之家  ›  专栏  ›  技术社区  ›  Doe

实体框架自动确定是否更新或创建实体

  •  1
  • Doe  · 技术社区  · 7 年前

    我是EF的新手。 在网上搜索了几个小时后,我想在这里问我的问题。

    EF中是否真的没有内置机制来确定是更新还是创建实体?

    假设我有一个POCO对象列表,并希望将它们保存到数据库中。

    现在我真的必须区分实体是否已经存在(更新)或不存在(插入)上下文。添加并必须在处理之前进行查找?

    我预计,当主键字段为null或空时,EF将自动执行插入,否则将执行更新?

    1 回复  |  直到 7 年前
        1
  •  1
  •   dropoutcoder    7 年前

    伊万斯托夫在评论中提到,简短的回答是

    不。告诉英孚该怎么做是你的责任。

    但有一种方法你可以使用。 AddOdUpdate 中的扩展方法 System.Data.Entity.Migrations 命名空间。

    无论如何,我确实认为在你的情况下使用它不是一个好主意。你应该控制你在代码中所做的事情,每次你试图破解一些东西,这意味着你没有正确地完成它。我建议你阅读附件中的链接。

    相关链接:

    AddOrUpdate method

    Entity Framework: AddOrUpdate is a Destructive Operation