我想获取下一个身份标识,然后将其记录在某处。之后只有这个我想调用SubmitChanges()。如何在Linq-to-Sql中提交之前获取下一个身份标识?
2
A
回答
0
,你需要在数据库中添加lastModified
日期列,并得到它,如果不和增量标识列
其他明智的,做的更好SubmitChanges()
并获得nextID
1
包住整个事情在一个事务中,做一个SELECT IDENT_CURRENT('table_name')然后提交你的修改,提交事务。如果您在SELECT IDENT_CURRENT之后并且在插入应该给予您正确的标识值之前锁定应该阻止其他人插入记录的表。
+0
听起来不错,但我需要做的全部在一个TRAN ,不锁定( – Dmitry 2010-09-21 16:28:29
4
将DataContext
包装在数据库事务中并调用SubmitChanges
将更改写入该事务中的数据库。这样,您就可以得到自动生成的ID,同时能够保持操作的事务:
using (var con = new SqlConnection(conStr))
{
con.Open();
using (var tran = con.BeginTransaction())
{
using (var db = new YourDataContext(con))
{
// Setting the transaction is needed in .NET 3.5.
// It's a bug in L2S and was fixed in .NET 4.0.
db.Transaction = tran;
var entity = new MyEntity();
db.MyEntities.InsertOnSubmit(entity);
db.SubmitChanges();
var id = entity.Id;
// Do something useful with this id
}
tran.Commit();
}
}
相关问题
- 1. 可以在提交项目之前获取下一个提交ID吗?
- 2. 从提供的凭证中获取当前AWS Cognito身份标识
- 3. 如何获取不同数据库中的身份标识?
- 4. 获取jquery在提交表单之前检查用户标识是否有效
- 5. 获取最后一次提交之前的提交
- 6. 如何使用Swift获取未经身份验证的标识
- 7. Aurelia身份验证:如何获取用户标识
- 8. 如何在提交标记之前提交文件?
- 9. Autofac获取当前身份
- 10. 如何由JavaScript在提交之前获得的文章标题
- 11. 如何获取身份验证标头
- 12. 如何在提交按钮之前获取我的输入值?
- 13. 无论如何,在提交TRANSACTION之前获取主键?
- 14. 如何在Yii2提交之前获取dropDownList选择的值?
- 15. 如何在提交之前获取jqgrid表单操作值?
- 16. 如何在提交之前为我的应用获取网址?
- 17. 获取textarea的内容之前提交
- 18. 如何在Sql Server中插入新行后获取新的身份标识ID?
- 19. 获取Mercurial下一个提交哈希
- 20. 如何在当前提交上获取标签
- 21. 在cakephp上获取下一个和前一个记录的标识
- 22. 如何改变与新的前提交身份证号码提交ID
- 23. 在提交LINQ中的变更之前引用对象的身份
- 24. 强制LinqToSql提交
- 25. LinqToSql - “插上提交”
- 26. 如何从nhibernate中的wcf获取经过身份验证的用户标识
- 27. 如何获取并锁定下一个标识值SQL Server
- 28. 如何在JTable中提交表单之前获取javaScript中的数据
- 29. AngularJS - 如何在第一次提交进行身份验证?
- 30. 如何在第一个/日期之前提取月份或数字?
这就是这一点,我需要获得新的ID之前提交 – Dmitry 2010-09-21 16:26:32