我想獲取下一個身份標識,然後將其記錄在某處。之後只有這個我想調用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