是否可以基于String列表中的值构建查询?

时间:2011-11-22 21:59:24

标签: c# asp.net sql linq

我已经定义了一个类表,但是有一个请求允许基于类别进行选择。我不想创建一个分类相关类的新表,而是要实例化一个可遍历的String或List来构建查询。

例如,班级编号14891,14898,14899等都是艺术风格的班级。

是否可以执行类似

的操作
int[] artList= {14891, 14989, 14899, .... };

然后构建一个像

这样的查询
var query = from c in classTable where artList.contains(c.classID) select c;

我是ASP的完全新手和复杂的SQL查询,所以我很感激帮助。

2 个答案:

答案 0 :(得分:3)

是的,这是可能的。

// This is the declaration for an array:
int[] artList = new int [] {14891, 14989, 14899}; 
// And your query is just fine! Of course, you knew that, right? :)
var query = from c in classTable where artList.contains(c.classID) select c;

是什么阻止你再次尝试? :)

答案 1 :(得分:3)

好的是:

var query = from c in classTable where artList.Contains(c.classID) select c;

会奏效。一些注意事项,即Linq to Sql,而不是Sql。该查询是IQueryable<classTable>,尚未实际执行。在对该查询调用操作之前,您实际上不会将生成的Sql发送到数据库,例如:AsEnumerable(), ToList(), Max(), Count(), etc.