我正在使用MVC webform将记录插入到具有多个子记录的数据库中。在我的代码隐藏中,我首先使用dataRepository.Add(xx)创建一个新的主记录。现在我需要添加5个需要新创建记录ID的子记录。我如何检索?ASP.NET MVC获取最后添加的记录的标识
8
A
回答
23
假设xx是你的模型,它的主键是标识,你可以得到的Id你插入的数据是这样的:
// at this point xx.Id == null
db.XX.AddObject(xx);
db.SaveChanges();
// now: xx.Id > 0
int id = xx.Id;
1
您应该将所有5条记录加上主记录一直提交到您的数据层,然后在您的业务层中执行任何验证。然后,根据DL的实施情况,保存主记录,返回ID,在子记录上设置父ID并保存。在一次交易中做到这一切,你应该没问题。
请详细介绍您的数据访问层。
如果使用MS SQL Server,您可以在存储过程中使用Scope_Identity()来获取插入到标识列中的最后一个标识值。看到这个MSDN article
如果使用NHibernate的你在同一个会话中添加他们和NHibernate负责生成负责将用正确的ID记录的SQL。
2
如果您正在使用ORM(例如实体框架),您应该能够创建记录和关联记录,通过将关联记录添加到主对象的集合中或者以某种方式设置它们,然后调用save方法在上下文中。这将为您做所有与ID等链接。
你是如何进行数据访问的?
相关问题
- 1. Informix:如何获取最后插入的记录的标识
- 2. indexeddb获取最后添加的记录非字母顺序
- 3. 在不使用asp.net标识的情况下获取记录的用户标识
- 4. asp.net mvc 2 jqgrid添加记录
- 5. 如何获取最后的记录? (JS)
- 6. 获取最后不同的记录集
- 7. 获取实体NSSet的最后记录?
- 8. 如何用PHP中的PDO SQLite获取最后添加的记录的数量?
- 9. 向ASP.NET MVC中的URL slugs添加标识和标题
- 10. asp mvc从savechanges获取最后插入标识()
- 11. 从最近添加的事件(EKEventStore saveEvent)获取标识
- 12. 获取加入的查询的最后5条记录
- 13. 获取每个记录组的最后一条记录
- 14. ASP.NET:获取.ascx的标记
- 15. 获取最新添加的记录在数据库中
- 16. 如何获得Asp.net MVC BeginForm正确添加结束标记?
- 17. laravel 4.2获取最后10条记录
- 18. CKQueryOperation获取最后一条记录
- 19. ASP.NET MVC实体框架,最新添加的项目越来越标识
- 20. 获取给定标记的最后一个git标记
- 21. 获取刚刚保存到数据库的模型的记录标识MVC4 ASP.Net
- 22. 添加新的记录入表中标识的主键
- 23. 在asp.net中使用实体从mssql获取新记录的标识c#
- 24. 监视添加的文件并获取最后添加的行
- 25. Rails - 从当前记录中获取最后X个记录?
- 26. 从没有唯一标识的重复记录中获取第一条记录
- 27. ASP.net MVC - 获取当前记录的用户角色
- 28. 获取Google Apps脚本中最后插入的行的标识
- 29. 如何获取PHP中的最后一个插入的标识
- 30. 获取在asp.net mvc的当前目录
如何您的数据存储库来实现? Linq的实体? Linq to SQL?输入数据集?需要代码。 – villecoder 2010-09-08 12:47:01
不是MVC Webform是一个矛盾吗? – Martin 2010-09-08 12:50:21
只是一句话:不要在ASP.NET MVC中使用代码隐藏文件! – davehauser 2010-09-08 13:00:27