当你实现uows& amp;时,如何在两个表上进行连接?通用存储库

时间:2015-02-22 16:03:46

标签: asp.net-mvc linq entity-framework entity-framework-6

我的工作单元基本上是作为本教程设置的,只有少量补充:

http://www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

我想知道如何在两个表上进行连接。我尝试将此添加到GenericRepository,但您可能会猜测我的Linq知识是可疑的。

public virtual IQueryable AsQueryable()
        {
            IQueryable<TEntity> query = dbSet;
            return query;
        }

然后做

// 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

但它不会让我访问我的表中的属性。我基本上需要一种将表作为可查询实体返回的方法(我认为)

1 个答案:

答案 0 :(得分:0)

具有讽刺意味的是,我在发帖后直接解决了问题。结果,对于那些发现相同问题的人:

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();