0

我有以下代码,我正在使用EF 4.1和Unit of Work中的存储库模式。 但是,因为我不太了解表达式和谓词如何工作,请询问以下内容:使用谓词来查找所有行?

使用下面的代码,是否有更好的方法来查找所有行?

public ActionResult Index() 
    { 
     var positions = unitOfWork.PositionRepository 
            .Find(p => p.PositionID != null); 

     return View(positions.ToList()); 
    } 

我根据我的UnitOfWork和库从这里 http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

我尝试这样做:

public virtual List<TEntity> GetAll() 
     { 
      return context.Set<TEntity>.ToList(); 
     } 
+0

'Set'是一种方法... –

+0

笑。 thx :) :) :) –

回答

2

如果你想要的所有行,你只需要调用这个在您的设置:

context.Positions.ToList(); 

因此,只需将方法添加到您的资源库中展示这个结果。

在通用的(错误)信息库的情况下使用:

context.Set<Position>().ToList(); 
+0

我的存储库是通用的 –

+0

谢谢,为什么使用通用存储库会出错?我认为它使得代码更加清晰,并且更易于使用控制器。 –

+0

请参阅编辑。该代码不能在通用存储库中编译,我错过了什么? –