Как добавить логический атрибут с помощью JavaScript

У меня была такая же проблема, но моя проблема с решением @ Slauma (хотя и велика в некоторых случаях) заключается в том, что она рекомендует передать контекст в службу, что подразумевает, что контекст доступен из моего контроллера. Это также создает плотную связь между моим контроллером и сервисными слоями.

Я использую Injection Dependency для ввода слоев сервиса / репозитория в контроллер и, как таковой, не имеет доступа к контексту с контроллера.

Мое решение состояло в том, чтобы слои службы / репозитория использовали один и тот же экземпляр контекста - Singleton.

Контекст Singleton Class:

Ссылка: http://msdn.microsoft.com/en-us/library/ff650316.aspx и http://csharpindepth.com/Articles/General/Singleton.aspx

public sealed class MyModelDbContextSingleton
{
  private static readonly MyModelDbContext instance = new MyModelDbContext();

  static MyModelDbContextSingleton() { }

  private MyModelDbContextSingleton() { }

  public static MyModelDbContext Instance
  {
    get
    {
      return instance;
    }
  }
}  

Класс репозитория:

public class ProjectRepository : IProjectRepository
{
  MyModelDbContext context = MyModelDbContextSingleton.Instance;

Существуют другие решения, такие как создание экземпляра контекст один раз и передать его в конструкторы слоев службы / репозитория или другое, о котором я читал, в котором реализуется шаблон «Единица работы». Я уверен, что есть еще ...

13
задан Deduplicator 1 February 2015 в 16:36
поделиться