如何根据父表添加多个项目到表和子表中在每次添加行时不调用保存更改的唯一标识在子表中保存按钮更改的用户点击必须致力于EF5递增唯一ID,不调用savechanges直到用户请求保存
1
A
回答
0
实体框架首先将父记录,并使用其自动递增的标识值来设定孩子的任何外键值。 EF可以做到这一点,因为SQL服务器增加了事务范围内的标识列,因此在事务尚未提交时分配新值。 (回滚后的新插入显示标识列未命中回滚事务中分配的值)。
所以这是没有问题,这样做
var cust = new Customer { ... };
context.Customers.AddObject(cust); // (or Add() with DbContext).
var ord = new Order { ... };
ord.OrderLines.Add(new OrderLine { ... });
cust.Orders.Add(ord);
context.SaveChanges();
其中...
是设置属性(无父的ID)的占位符。
3
这取决于你如何定义实体的方式。如果您使用的是independent associations,它会简单地工作。
如果您正在使用外键关联,则必须为主体实体使用临时密钥,并将它们设置为从属实体中的外键属性。父项中的这些临时密钥必须是唯一的(例如,使用负值),并且EF会在保存更改时自动用真实值替换它们。
+0
请问您可以将我从哪里获得这些信息的文档链接到我? – michelle 2013-09-23 13:03:55
相关问题
- 1. EF5的SaveChanges()
- 2. log4net的唯一请求ID
- 3. Zend_Registry是否存在直到下一个用户请求?
- 4. MySQL:通用自动递增产品ID和客户唯一自动递增产品ID
- 5. 使用HttpClient,如何将XDocument直接保存到请求流?
- 6. Asp.Net MVC每个请求的唯一ID
- 7. 传递用户名到HTTPGET请求
- 8. 传递用户,请求到表单
- 9. ObjectSet查询不返回添加EntityObject直到SaveChanges()调用
- 10. C#EF SaveChanges不保存上一个值
- 11. SaveChanges不保存更改
- 12. 自动递增用户自定义ID
- 13. 如何将ID保存到用户列
- 14. Shopify metafield ID是唯一的唯一用户或唯一吗?
- 15. EntityFramwork 6 - 调用SaveChanges时未设置ID()
- 16. 使用node.js从POST请求中唯一标识用户
- 17. 用户变量不递增
- 18. 调用不同的控制器,但保存请求?
- 19. 当用户收到邀请时获取正确的请求ID
- 20. 请求回调直到结束才会被调用
- 21. SQL请求来选择由用户ID
- 22. 不在另一个表中保存唯一的ID - Rails 4
- 23. Android中每个用户的唯一ID
- 24. Windows登录用户唯一ID
- 25. 为用户提供创建唯一ID
- 26. 用http请求获取Facebook用户的用户ID C#WPF
- 27. backbone.sync请求不被调用
- 28. SugarCRM - 使用自动递增的ID添加潜在客户ID
- 29. 如何使用Firebase和用户在Android中输入唯一ID来保存用户信息?
- 30. jdbcTemplate.update自动递增和唯一ID字段
使用自动递增的列,EF将为您处理它。 – 2012-08-13 09:03:39
嗨,我倒过来从现有的数据库设计的代码,数据库表列ID设置为身份增量,但在表类中您指定自动递增选项或属性 – 2012-08-13 09:13:21
你不会 - 这是默认的整数键但应用程序中的值不会自动递增,只有在保存更改后才设置。 – 2012-08-13 09:15:48