Я использую общий репозиторий для разработки своего собственного BLL с каркасом сущностей. Универсальный репозиторий Но все универсальные репозитории не имеют внутреннего соединения.Lokk ниже:
public interface IRepository
{
IQueryable<T> List<T>() where T : class;
T Get<T>(int id) where T : class;
void Create<T>(T entityTOCreate) where T : class;
void Edit<T>(T entityToEdit) where T : class;
void Delete<T>(T entityToDelete) where T : class;
}
Как преобразовать вышеуказанный код в:
public interface IRepository
{
IQueryable<T> List<T>() where T : class;
T Get<T>(int id) where T : class;
void Create<T>(T entityTOCreate) where T : class;
void Edit<T>(T entityToEdit) where T : class;
void Delete<T>(T entityToDelete) where T : class;
void InnerJoin<T>(T entityName, TNew entityName2) where T : class, where TNew : class;
}
или я думаю, что мы можем использовать шаблон Fluent interfacve, подобный этому:
public List<MyWorker> ListByID( int ID)
{
using (var Ctx = new DomainRepository<Worker>(new ProposalsEntities()))
return Ctx.Find<Worker>(q => q.ID== ID).ToList().InnerJoin(XEntity,x=>x.ID=q.ID).InnerJoin(YEntity,y=>y.ID=q.ID);
}
Юо может дать еще один совет, чтобы решить этот фантастический вопрос.Как я могу написать выше код соединения в универсальном репозитории?