С EF4 можно ли получить сгенерированный SQL для Updates/Inserts, а не выполнять его... точно так же, как вы можете просмотреть SQL-запрос перед его запуском.
Причина в том, что у меня есть набор вспомогательных функций, которые выполняют команды SQL. Например...
Decrement<Category>("ProductCount", categoryID);
SetNull<Product>("CategoryID", productID);
Что генерирует...
UPDATE Categories
SET ProductCount = ProductCount - 1
WHERE CategoryID = @CategoryID;
UPDATE Products
SET CategoryID = NULL
WHERE CategoryID = @ProductID;
Обычно я запускаю несколько команд для каждой операции, поэтому при каждом вызове вспомогательной функции SQL генерируется и сохраняется. Когда я вызываю SaveChanges(), все команды запускаются в ОДИН РАЗ.
Единственная проблема заключается в том, что EF выполняет свои команды отдельно за кулисами, а затем запускаю остальные сразу. Было бы идеальным запустить все как одну команду.