Решили в проекте использовать ORM (NHibernate) и возник вопрос как реализовать доступ к объектам.
Подскажите какое из решений лучше:
1) Реализовать все как св-ва IUnitOfWork
public interface IUnitOfWork
{
....
IQueryable<User> Users{get;}
}
использование:
public UserRepository:IUserRepository
{
......
public IQueryable<User> Items
{
return _iUnitOfWork.Users;
}
}
И здесь возникает вопрос насколько правильно использовать в методе сервиса свойства UOW в обход репозитариев:
class UserService
{
somemethod()
{
var t=from u in IUnitOfWork.Users
...join .. IUnitOfWork.Pages
where...
.... select u
}
}
2)Реализовать непосредственно в репозитории:
public UserRepository:IUserRepository
{
......
public IQueryable<User> Items
{
return _session.Query<User>();
}
}
3) Подвариант 2-го использовать дженериковский репозиторий