EF CTP4, когда вызывать context.SaveChanges
Я пытаюсь повторить многие из методов, которые мы используем с NHibernate в EF CTP4.
В настоящее время у нас есть универсальный интерфейс репозитория (CTP4 на самом деле делает это довольно просто с помощью DbContext.Set).
Мы передаем контекст и используем StructureMap, чтобы охватить его в соответствии с HttpRequest.
В NHibernate мы передаем ISession (снова созданный с использованием StructureMap), но используем ActionFilter (UnitOfWork) для фиксации транзакции в конце запроса.
Есть ли у нас эквивалентные транзакции в EF CTP4? Если нет, должен ли я использовать тот же фильтр для вызова context.SaveChanges() или просто сделать это внутри хранилища.
Кстати, какой самый простой способ проверить, является ли объект новым или нет. С NH у нас есть возможность просто вызвать ISession.SaveOrUpdate. Обратите внимание, что все мои сущности используют идентификатор Guid. Возможно, проверка по умолчанию (Guid)?
Благодарю.
1 ответ
Я знаю, что это поздний ответ, который вы уже поняли, но я думаю, что он полезен для поиска людей. У Роба Конери есть отличная статья об использовании actionfilter и Ef для создания транзакций для каждой области запроса.
О, да, я бы создал метод UpdateInsert() в общем хранилище, которое проверяет по умолчанию (Guid).