Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Linq Đến Sql và ID_insert

Một tùy chọn khác là gói tất cả các lệnh gọi Linq2Sql của bạn trong một TransactionScope (). Điều này sẽ buộc tất cả chúng chạy trong cùng một kết nối.

using System.Transactions; // Be sure to add a reference to System.Transactions.dll to your project.

       // ... in a method somewhere ...
       using (System.Transaction.TransactionScope trans = new TransactionScope())
       {
          using(YourDataContext context = new YourDataContext())
          {
             context.ExecuteCommand("SET IDENTITY_INSERT MyTable ON");

             context.ExecuteCommand("yourInsertCommand");

             context.ExecuteCommand("SET IDENTITY_INSERT MyTable OFF");
          }
          trans.Complete();
       }
       // ...

Mặc dù, nếu bạn đang cố gắng làm điều gì đó như:

context.ExecuteCommand("SET IDENTITY_INSERT MyTable ON");
context.MyTable.InsertOnSubmit(myTableObject)
context.SubmitChanges()
context.ExecuteCommand("SET IDENTITY_INSERT MyTable OFF");

bạn có thể sẽ gặp phải các vấn đề khác, đặc biệt nếu cột nhận dạng có thuộc tính IsDbGenerated được đặt thành true. Lệnh SQL được tạo bởi Linq2Sql sẽ không biết bao gồm cột và giá trị nhận dạng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn 2 triệu hàng vào SQL Server nhanh chóng

  2. Làm cách nào để lấy danh sách các bảng trong thủ tục được lưu trữ?

  3. Khả năng MS SQL Server tương tự như hàm MySQL FIELD () là gì?

  4. MSSQL Biểu thức chính quy

  5. SQL:mệnh đề in trong thủ tục được lưu trữ:cách chuyển giá trị