Nó có thể quan trọng CÁCH bạn thêm một đối tượng vào DataContext để có hay không nó sẽ được bao gồm trong các truy vấn trong tương lai.
sẽ không thêm các InventoryTransaction mới về tương lai trong bộ nhớ truy vấn
Trong ví dụ này tôi thêm một đối tượng với một ID và sau đó thêm nó vào bối cảnh.
var transaction = new InventoryTransaction()
{
AdjustmentDate = currentTime,
QtyAdjustment = 5,
InventoryProductId = inventoryProductId
};
dbContext.InventoryTransactions.Add(transaction);
dbContext.SubmitChanges();
LINQ-to-SQL là không đủ thông minh để coi đây là cần phải được thêm vào danh sách lưu trữ trước đó trong mục bộ nhớ trong InventoryTransactions
.
SẼ thêm InventoryTransaction mới về tương lai trong bộ nhớ truy vấn
var transaction = new InventoryTransaction()
{
AdjustmentDate = currentTime,
QtyAdjustment = 5
};
inventoryProduct.InventoryTransactions.Add(transaction);
dbContext.SubmitChanges();
Bất cứ nơi nào có thể sử dụng các bộ sưu tập trong LINQ-to-SQL khi tạo mối quan hệ và không phải là ID.
Ngoài Jon như đã nói, hãy cố gắng giảm thiểu phạm vi của DataContext càng nhiều càng tốt.
Nguồn
2011-08-25 05:59:42
Đó là lúc tái cấu trúc chính cho tôi để sử dụng một DataContext khác, bởi vì nó được gói trong một thư viện khung. –
Vâng, đó là những gì bạn cần làm. Khi phải đối mặt với một quyết định thiết kế tồi tệ được thực hiện trước đó, tôi thường thấy nó * nhiều hơn * tốt hơn để cuộn lên tay áo của bạn và sửa nó hơn là làm việc xung quanh nó, làm cho nó khó khăn hơn và khó khăn hơn để sửa chữa sau này. –
Vâng ... đó không phải là một lựa chọn. –