Я пытаюсь создать транзакцию, чтобы обернуть несколько вызовов LINQ to SQL SubmitChanges ().
код
System.Data.Common.DbTransaction trans = null;
using (DbContext context = new DbContext())
{
context.Connection.Open()
trans = context.Connection.BeginTransaction();
context.Transaction = trans; // <-- ERROR HERE: Cannot be done!
.... // Several calls to delete objects with context.SaveChanges()
trans.Commit();
}
Задача
В нашей схеме базы данных (которая предшествует мне и тесно связана с приложением) у нас есть таблица с именем Transaction
.
Это означает, что свойство Transaction в приведенном выше коде на самом деле не является типом IDbTransaction, и я не могу назначить объект trans для context.Transaction. context.Transaction
на самом деле имеет тип Table<Transaction>
.
Вопрос
Как я могу назначить транзакцию моему контексту, учитывая неизменяемый в настоящее время факт наличия у меня таблицы с именем Транзакция?
Хотя я знаком с LINQ to SQL, я впервые использую транзакцию для нескольких вызовов, поэтому я также готов признать, что, во-первых, я могу делать это неправильно, и что конфликтующее имя таблицы может даже не быть проблемой ...