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

請參閱編輯。該代碼不能在通用存儲庫中編譯,我錯過了什麼? –