我在C#中使用Linq。 我已经定义了我自己的函数
public static void AutoSuggest(TextBox t, string columnName, string tableName)
{
}
在这个用户定义的函数中,使用参数,我想从数据库的指定表中获取指定的列数据。
那么,我应该如何在Linq中生成此查询?
答案 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();
这将避免注射风险等。