检索筛选值重构方法,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