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 для создания транзакций для каждой области запроса.

Rob C Статья

О, да, я бы создал метод UpdateInsert() в общем хранилище, которое проверяет по умолчанию (Guid).

Другие вопросы по тегам