Может иметь значение КАК вы добавляете объект в DataContext относительно того, будет ли он включен в будущие запросы.
НЕ добавит новую транзакцию InventoryTransaction к будущим запросам памяти
В этом примере я добавляю объект с идентификатором, а затем добавляю его в контекст.
var transaction = new InventoryTransaction()
{
AdjustmentDate = currentTime,
QtyAdjustment = 5,
InventoryProductId = inventoryProductId
};
dbContext.InventoryTransactions.Add(transaction);
dbContext.SubmitChanges();
Linq-to-SQL не достаточно умен, чтобы считать это необходимым для добавления в ранее кэшированный список элементов памяти в InventoryTransactions
.
добавит новую транзакцию InventoryTransaction к запросам памяти в будущем
var transaction = new InventoryTransaction()
{
AdjustmentDate = currentTime,
QtyAdjustment = 5
};
inventoryProduct.InventoryTransactions.Add(transaction);
dbContext.SubmitChanges();
При возможности используйте коллекции в Linq-to-SQL при создании связей, а не идентификаторы.
Кроме того, как говорит Джон, постарайтесь максимально уменьшить область действия DataContext.