Рекомендации по совместной работе с NHibernate и /или веб-сервисом

StackOverflow https://stackoverflow.com/questions/1837298

  •  11-09-2019
  •  | 
  •  

Вопрос

Я ищу несколько советов по следующему поводу.

Мне нужно создать DAL, который был бы взаимозаменяем между базой данных и веб-сервисом.Я разрабатываю на C # и WPF.

кто-нибудь видел какие-нибудь хорошие реализации IUnitOfWork и позволял переключать разные DAL с помощью какого-нибудь DI?

Редактировать

Итак, после некоторого чтения.Я решил использовать шаблон репозитория.Шаблон Повторения включает в себя единицу работы.Выше указано обратное.Также вот пример того, что я имею в виду под включением или выключением переключателя.

NHibernateProductRepository : IRepository<Product>  
{
    private IUnitOfWork _unitOfWork = null;

    public NHibernateProductRepository(IUnitOfWork unitOfWork)
    {
        _unitOfWork = unitOfWork;    
    }
}

WebServiceProductRepository : IRepository<Product>  
{
    private IUnitOfWork _unitOfWork = null;

    public WebServiceProductRepository (IUnitOfWork unitOfWork)
    {
        _unitOfWork = unitOfWork;    
    }
}

....

public static class Bootstrapper 
{
     public static void Load() 
     {
         // Some sort of IOC.. Which will also be used for DI. 
     }
}

Так что, я думаю, мне нужна помощь с материалами IUnitOfWork.С репозиториями веб-сервисов будет непросто.Итак, как мне создать какую-то транзакцию, и как мне поставить ее в очередь и т.д. И т.п.

И последнее, в среде WPF несколько потоков могут сохранять данные в базу данных, поэтому для каждого потока он должен создавать свой собственный UnitOfWork?Я боюсь, что поток может зафиксироваться на полпути через другой и т.д.

Это было полезно?

Решение

Вам следует проверить Четкая архитектура если вы используете NHibernate.В проекте contrib описан ваш сценарий.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top