在动态LINQ中动态传递表和列

时间:2014-10-28 10:38:39

标签: c# linq

我搜索了很多,但找不到我的确切看法。这可能非常简单。通常在LINQ中我们编写这样的选择查询:

var entityModel = new StudentEntities();
var dept = (from a in entityModel.STUDENT where a.NAME != null select a.DEPARTMENT).Distinct().OrderBy(w => w); 
//STUDENT- table, NAME-column name, DEPARTMENT-column name

如何使用动态LINQ编写相同的查询?这里将从一些winForm控件(文本框/组合框)或字符串中选择表名和列名。试过这个:

var dept = "(from a in entityModel." + tableName + "where a." + cbo1.Text.ToString + "!= null select a."+cbo2.Text.ToString +").Distinct().OrderBy(w => w)";

这不起作用。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

你做不到。您需要生成动态SQL并在数据库上运行它。

this library: Dynamic LINQ,但它并不像你想要的那样动态。