如何向DbContext添加多个新行?

时间:2017-12-07 19:57:52

标签: entity-framework entity-framework-6

我的问题似乎与this one相似,但多年来确切的细节和解决方案似乎都有所改变。 (首先,接受的答案中引用的ObjectStateManager显然不再可访问。)

我有一个显示对象图的Web应用程序。图中的一个对象是列表。用户可以编辑列表中的项目。他们还可以添加新项目。当他们保存更改时,我会序列化整个对象图(包括指示是否添加或修改值的字段)并将其发送到控制器以更新数据库。我发送带有未初始化ID的添加项目。在控制器中,我反序列化对象图并将其传递给DbContext#Attach()。然后我在调用SaveChanges()之前设置附加条目的实体状态。

这适用于任意数量的已更改行,并且可以使用单个添加的行。插入行时,数据库会分配ID。但是Attach()不接受具有相同未初始化ID的多个添加行。

有没有办法抑制Attach()中ID的验证?似乎EF应该将其留给数据库。如果做不到的话,我应该怎么做呢?

0 个答案:

没有答案