Tôi đang lưu trữ một số dữ liệu bằng NHibernate và tôi cần chèn số lượng lớn dữ liệu như một phần của hành động này - tức là trong cùng một giao dịch. Mã trông giống như sau:Sử dụng giao thức NHibernate trong SqlBulkCopy
using (ISession session = NHibernateHelper.OpenSession())
using (ITransaction transaction = session.BeginTransaction())
{
session.SaveOrUpdate(something);
// ...
SqlBulkCopy bulkCopy = new SqlBulkCopy(
(SqlConnection)session.Connection,
SqlBulkCopyOptions.CheckConstraints | SqlBulkCopyOptions.FireTriggers,
???transaction???
);
//...
transaction.Commit();
}
Tôi biết rằng tôi có thể sử dụng TransactionScope hoặc thực hiện theo cách khác. Nhưng tôi nhấn mạnh vào mô hình này. Hãy giả vờ rằng vì lợi ích của truy cập DB độc lập (nếu tôi trích xuất và chèn hoạt động chèn số lượng lớn tùy ý). Có cách nào để có được ví dụ SqlTransaction
trong số NHibernate.ITransaction
không?
Cảm ơn
Câu trả lời dưới đây có giải quyết được câu hỏi của bạn không? – Meligy