Tôi đang thực hiện Pattern Repository sử dụng ServiceStack.ORMLite như thế này:Giao dịch trong Pattern Repository sử dụng ServiceStack.ORMLite
public class MyRepository : IMyRepository
{
private IDbConnectionFactory DbConnectionFactory = null;
public MyRepository(IDbConnectionFactory dbConnectionFactory)
{
DbConnectionFactory = dbConnectionFactory;
}
public void MyMethod()
{
using (var connection = DbConnectionFactory.OpenDbConnection())
using (var cmd = connection.CreateCommand())
{
//Do something here
}
}
}
Nhưng tôi không biết làm thế nào để xử lý DbTransaction khi tôi cần phải warp một số hoạt động DB trong một DbTransaction.It trông giống như TransactionScope
là một giải pháp nhưng tôi không biết liệu có quá nặng cho việc này hay không.
Đó là lỗi của tôi bằng cách hỏi một câu hỏi xấu ... Tôi sẽ cố gắng redfine câu hỏi của tôi ... –
là nó tốt để mở một IDbConnection chỉ một lần mỗi yêu cầu và xử lý sau khi sử dụng? Tôi nghĩ tôi nên mở kết nối ở đầu mỗi phương thức và đóng nó khi phương thức kết thúc. –
Tốt thôi, nếu bạn đang sử dụng một hồ bơi kết nối (tức là hành vi mặc định cho SqlServer) thì kết nối không thực sự bị đóng, nó chỉ được phát hành trở lại vào hồ bơi. Nhưng cũng có thể sử dụng Yêu cầu Phạm vi vì nó đơn luồng cho mỗi yêu cầu vì vậy một cá thể kết nối có thể được chia sẻ một cách an toàn với các phụ thuộc khác trong cùng phạm vi yêu cầu. – mythz