Работа с ORM
От: Аноним  
Дата: 26.07.11 04:31
Оценка:
Решили в проекте использовать 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-го использовать дженериковский репозиторий
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.