Я новичок в NHibernate
и я пытаюсь impelement Generic Repository Pattern и Единицы работы для использования в ASP.NET MVC 3 приложения , Я googled название и нашел новые ссылки; но все они были более сложными для понимания мной. Я использую StructureMap как мой IOC. Можете ли вы предложить мне некоторые ссылки или сообщения в блоге, пожалуйста?как реализовать общий шаблон репозитория и UOW в NHibernate 3,2
ответ
Вот несколько вещей, чтобы читать через:
- Advantage of creating a generic repository vs. specific repository for each object?
- How to make a Generic Repository?
Реализация я использовал в своем последнем проекте выглядел:
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();
}
}
Thanks; Я понял. Но теперь, как я могу создать объект «ISession» посредством инъекции? 'public Repository (сеанс ISession)', но кажется, что 'ISession' может быть создан только методом OpenSession; например, как работать с этим репозиторием через StructureMap? можете больше объяснить, пожалуйста? –
@ king.net Я сам использую ninject по структурной карте, однако подобные понятия применимы. Внутри ninject я бы сделал что-то вроде этого: Bind
Спасибо, полезный и полный ответ, принять его; привет –
Проверьте это решение - https://bitbucket.org/cedricy/cygnus/overview
Его простая реализация шаблона репозитория, который мы использовали в наших продуктах MVC 1, 2 и 3.
Конечно, с тех пор мы узнали, что мы действительно ценим, что наши запросы запускаются напрямую против ISession. У вас есть больше контроля над ними. Это и Ayende сказали нам не слишком.
Спасибо, Седрик!
Спасибо. Ответ проголосовали. С уважением –
- 1. Общий шаблон репозитория и понимание синтаксиса
- 2. RIA Services и общий шаблон репозитория
- 3. EntityFramework Общий шаблон репозитория, OutOfMemoryException
- 4. общий шаблон репозитория с соединениями
- 5. Как реализовать шаблон репозитория в Codeigniter?
- 6. ASP.NET 5 MVC 6 Общий шаблон репозитория
- 7. Общий шаблон репозитория с шаблоном UnitOfWork
- 8. Fluent NHibernate и шаблон хранилища
- 9. MVC Repository pattern и UOW
- 10. NHibernate 3,2 QueryOver отличается свойством
- 11. Шаблон объектов репозитория и запросов. Как реализовать сложные запросы
- 12. Общий вопрос репозитория
- 13. Linq Проекция кэшируются неправильно в NHibernate 3,2
- 14. Общий шаблон работы и репозитория не загружает связанные объекты
- 15. Пример источника для MVC, EF, WCF, репозитория и шаблона UOW
- 16. Общий шаблон и заводской шаблон
- 17. Как условно фильтровать IQueryable по типу, используя общий шаблон репозитория
- 18. Entity Framework и шаблон репозитория
- 19. Вы размещаете логику обработки файлов в репозиториях? (Использование общего репозитория и UoW-шаблона с EF)?
- 20. Шаблон репозитория в F #
- 21. Общий запрос на детали и общий шаблон репозитория в EF CF
- 22. Как реализовать шаблон Open Session in View в NHibernate?
- 23. MVC - Лучший шаблон (UoW + Repositories + Services + DI)
- 24. Шаблон репозитория и Linq to sql
- 25. MVC - шаблон репозитория
- 26. SQL Server Compact Edition и шаблон репозитория
- 27. Слайк 3: Как реализовать шаблон репозитория с транзакциями?
- 28. Шаблон репозитория - кэширование
- 29. MVC, шаблон репозитория и DataLoadOptions
- 30. NHibernate 3,2: SchemaExport не работает с SQLite
ISession от NHibernate уже представляет собой единицу работы и доступ к репозиторию. –
Репозиторий должен инкапсулировать уровень доступа к данным, то есть использовать его, но НЕ будет показывать Nhibernate. И правильно спроектированный репозиторий (для ваших нужд, общий репозиторий бесполезен) не должен нуждаться в единице работы либо – MikeSW