Entity framework 4 EF5递增唯一ID而不调用savechanges,直到用户请求保存

Entity framework 4 EF5递增唯一ID而不调用savechanges,直到用户请求保存,entity-framework-4,Entity Framework 4,如何基于子表中的父表唯一id向表和子表添加多个项,而不在每次添加行时调用save changes,仅当用户单击“保存”按钮时,必须提交更改实体框架首先插入父记录并使用其自动递增的标识值来设置子记录的任何外键值。EF可以做到这一点,因为SQL server在事务范围内增加标识列,因此在事务尚未提交时分配新值。(回滚后的新插入显示标识列未命中回滚事务中分配的值) 因此,像这样做是没有问题的 var cust=新客户{…}; context.Customers.AddObject(cust);//(或

如何基于子表中的父表唯一id向表和子表添加多个项,而不在每次添加行时调用save changes,仅当用户单击“保存”按钮时,必须提交更改

实体框架首先插入父记录并使用其自动递增的标识值来设置子记录的任何外键值。EF可以做到这一点,因为SQL server在事务范围内增加标识列,因此在事务尚未提交时分配新值。(回滚后的新插入显示标识列未命中回滚事务中分配的值)

因此,像这样做是没有问题的

var cust=新客户{…};
context.Customers.AddObject(cust);//(或使用DbContext添加()。
var ord=新订单{…};
添加(新订单行{…});
客户订单添加(ord);
SaveChanges();

其中,
是设置属性的占位符(无父id)。

它取决于您定义实体的方式。如果您正在使用它,它将简单地工作


如果使用外键关联,则必须为主体实体使用临时键,并将其设置为从属实体中的外键属性。父级中的这些临时键必须是唯一的(例如使用负值),保存更改时,EF将自动用实际值替换它们。

使用自动递增列,EF将为您处理。您好,我首先从现有数据库中反转了工程代码,DB表列ID设置为标识递增,但在table类中,您在何处指定自动递增选项或属性?您将不指定-这是整数键的默认值,但应用程序中的值不是自动递增的,它们仅在保存更改后才设置。那么,在用户添加记录的情况下,如何设置,然后为父记录添加子记录,其中父记录是子记录上的外键,然后开始添加新的父记录,然后再次添加子记录,在一个应用程序中,用户仅在添加完所有数据后才提交事务。请将您从中获取此信息的文档链接到我?