как реализовать общий шаблон хранилища и UoW в NHibernate 3.2 - PullRequest
4 голосов
/ 04 марта 2012

Я новичок в NHibernate и пытаюсь реализовать Универсальный шаблон репозитория и Единица работы для использования в ASP.NET MVC 3 приложение.Я погуглил название и нашел новые ссылки;но все они были более сложными для понимания мной.Я использую StructureMap в качестве моего IOC .Можете ли вы предложить мне несколько ссылок или сообщений в блоге, пожалуйста?

Ответы [ 2 ]

5 голосов
/ 04 марта 2012

Вот несколько пунктов для чтения:

Реализация, которую я использовал в своем последнем проекте, выглядела так:

public interface IRepository<T>
{
    IEnumerable<T> GetAll();
    T GetByID(int id);
    T GetByID(Guid key);
    void Save(T entity);
    void Delete(T entity);
}

public class Repository<T> : IRepository<T>
{
    protected readonly ISession Session;

    public Repository(ISession session)
    {
        Session = session;
    }

    public IEnumerable<T> GetAll()
    {
        return Session.Query<T>();
    }

    public T GetByID(int id)
    {
        return Session.Get<T>(id);
    }

    public T GetByID(Guid key)
    {
        return Session.Get<T>(key);
    }

    public void Save(T entity)
    {
        Session.Save(entity);
        Session.Flush();
    }

    public void Delete(T entity)
    {
        Session.Delete(entity);
        Session.Flush();
    }
}
1 голос
/ 05 марта 2012

Проверьте это решение - https://bitbucket.org/cedricy/cygnus/overview

Это простая реализация шаблона репозитория, который мы использовали в наших производственных приложениях MVC 1, 2 и 3.

Конечно, с тех пор мы узнали, что мы действительно ценим, чтобы наши запросы выполнялись непосредственно против ISession. Таким образом, у вас больше контроля над ними. Это и Айенде нам тоже не сказали.

Спасибо, Седрик!

...