檢索篩選值重構方法,MVC 3和實體框架(最新的穩定)用於我使用.NET Framework 4從數據庫
在一個索引頁,我希望能夠過濾每列。 LINQ使用distinct()方法爲每列檢索過濾器值。我還沒有找到一個很好的方法來重用爲每列檢索這些值的方法 - 它們基本上是相同的,區分它們的唯一方法是使用列名,因此使用一個方法而不是幾個方法會很好。
public List<string> GetLevels()
{
return _db.Logs.Select(l => l.Level).Distinct().ToList();
}
public List<string> GetOrders()
{
return _db.Logs.Select(l => l.Order).Distinct().ToList();
}
如何注入lambda表達式與列名稱我想從中檢索數據?事情是這樣的:
public List<string> GetFilterValues(string columName)
{
return _db.Logs.Select(l => l.columnName).Distinct.ToList();
}
而是在一個方法做的一切,它會更好,如果你做出這樣的屬性:'公開名單 GetLevels { {返回_db.Logs.Select(L => l.Level).Distinct() .ToList(); }它會更具可讀性。順便說一句,爲什麼你想在一種方法中有兩個不同的東西?我相信回報價值會有所不同。 –
Leri
2012-08-17 11:48:11
@PLB,我同意,它更具可讀性。我仍然想知道是否可以將列名注入到表達式中。 – JustAnotherCoder 2012-08-17 11:52:46
是的,它的答案包含解決方案,但如果您使用一個,這意味着每次調用該方法時都必須通過表達式,這似乎不是一個好主意。 – Leri 2012-08-17 12:00:18