在c#函数中生成Linq查询

时间:2012-03-12 10:48:26

标签: c# linq linq-to-sql

我在C#中使用Linq。 我已经定义了我自己的函数

public static void AutoSuggest(TextBox t, string columnName, string tableName)
{

}
  • t是文本框的引用
  • ColumnName是特定列的名称
  • Tablename是特定表的名称

在这个用户定义的函数中,使用参数,我想从数据库的指定表中获取指定的列数据。

那么,我应该如何在Linq中生成此查询?

1 个答案:

答案 0 :(得分:4)

如果你想使用LINQ,你最好谈论一个源和选择器;一些IQueryable<T>Expression<Func<T,string>>之类的东西。如果你想使用列/表名,首先它们必须必须列入白名单(不要接受来自web请求的名称),但代码只是:< / p>

var values = dataContext.ExecuteQuery<string>("select distinct [" + columnName
      + "] from [" + tableName +"]").ToList();

这是一种非常天真的方法,但它显示了基本用法;然后你会正常数据绑定。但是,我更倾向于调用代码,例如:

var values = dataContext.SomeTable.Select(x => x.SomeProperty)
              .Distinct().ToList();

这将避免注射风险等。