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

使用实体框架批量插入/更新

  •  4
  • Buu  · 技术社区  · 15 年前
    1. 我有一个标记表,它的模式只包含id和name(unique)。现在,从GUI用户可以输入blogpost的标签。保存数据时,如果标记存储在字符串(名称)数组中,我希望将名称尚不存在的标记添加到标记表中,并忽略名称已存在的标记,然后返回所有标记实体的列表(包括现有和新添加的标记)。我如何在一个SQL往返的实体框架中做到这一点?

    2. 对于返回的标记,我想将它们与要添加的blogpost对象相关联(该对象只是实例化的,还没有通过ef存储在db中)。这一步骤是否仍有可能在一次往返中与1结合使用,还是必须发出另一个查询?

    1 回复  |  直到 15 年前
        1
  •  6
  •   Craig Stuntz    15 年前

    我认为实体框架根本不需要批量插入(目前)。因此,如果必须将db往返次数保持在很低的水平,那么可能需要使用存储过程或数据库触发器。幸运的是,实体框架支持返回实体类型的存储过程。关于这一点,有关于msdn的文档。您可以创建一个接受标记的字符串列表并返回标记实体实例的过程。或者,您可以将varchar列添加到post表中,以获得带分隔符的标记列表,并在触发器中对其进行分析。