使用Entity Framework批量插入/更新

4
  1. 我有一个Tags表,其架构仅由ID和Name(唯一)组成。现在,用户可以从GUI中输入BlogPost的标签。当数据保存时,将标签存储为字符串数组(名称),我想要添加尚不存在名称的标签到Tag表中,并忽略已存在名称的标签,并返回所有标签实体的列表(包括现有和新添加的标签)。如何在Entity Framework中只使用1个SQL往返完成此操作?

  2. 对于返回的标签,我想将它们与将要添加的BlogPost对象关联起来(该对象仅在通过EF实例化且尚未存储在DB中)。是否仍然可能将此步骤与#1合并为1个往返或必须发出另一个查询?

1个回答

6
我不认为Entity Framework 目前支持批量插入。如果你需要减少数据库往返次数,你可能需要使用存储过程或数据库触发器。幸运的是,Entity Framework 支持返回实体类型的存储过程。MSDN 上有相关文档。你可以创建一个接受标签字符串列表并返回标签实体实例的存储过程。或者,你可以在帖子表中添加一个 VARCHAR 列作为标签的分隔列表,并在触发器中解析它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接