La mia unità di lavoro è fondamentalmente impostata come questo tutorial, con aggiunte minori:
Voglio sapere come fare un join su due tavoli. Ho provato ad aggiungerlo a GenericRepository, ma come puoi immaginare la mia conoscenza di Linq è dubbia.
public virtual IQueryable AsQueryable()
{
IQueryable<TEntity> query = dbSet;
return query;
}
E poi facendo
// uow is defined as new UnitOfWork() on class instantiation
var data = from x in uow.MyRepository.AsQueryable()
join y in uow.MyOtherRepository.AsQueryable()
on x.prop1 equals y.prop2
Ma non mi consentirà di accedere alle proprietà all'interno del mio tavolo. Fondamentalmente ho bisogno di un modo per restituire il tavolo come entità variabile (credo)
Ironia della sorte, l'ho risolto subito dopo la pubblicazione. Risultato, per coloro che trovano lo stesso problema:
var entity1 = uow.repo1.Get();
var entity2 = uow.repo2.Get();
var res = (from x in entity1
join y in entity2
on x.propToJoin equals y.propToJoin
select new
{
test = x.propertyToGrab
}).ToList();