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