EF, как ограничить пользователей, чтобы они не обращались к DbContext и не добавляли дочерние элементы совокупных корней? - PullRequest
0 голосов
/ 20 февраля 2012

Я использую шаблон репозитория и UnitOfWork.Это хранится в отдельном проекте вместе с моей моделью предметной области.Я понимаю, что у пользователей может возникнуть соблазн перейти непосредственно к DbContext и добавить, например, дочерний элемент совокупного корня.

Должен ли я отмечать все внутреннее, кроме репозиториев и UnitOfWork?Причина для того, чтобы спросить, состоит в том, что я не видел, чтобы это было сделано ни в одной из документации, примеров или даже в теме, описанной в том, что я прочитал до сих пор.

1 Ответ

1 голос
/ 20 февраля 2012

Не открывайте DbContext для вашего уровня домена и уровня пользовательского интерфейса. Ваша реализация шаблона репозитория представляет собой дырявую абстракцию.

Доменный уровень

public interface IUnitOfWork : IDisposable
{
   int SaveChanges();
}


public interface IRepository<TEntity>
{

}

Уровень доступа к данным

internal class UnitOfWork : DbContext, UnitOfWork
{

}


internal class Repository<TEntity> : IRepository<TEntity>
{

}
...