我正在构建一个动态查询。基本上,一个函数接收一个MyParams对象,其属性是参数;我创建了基于MyParams对象的Where子句并返回一个匿名类型的列表。linq-to-sql处理动态查询?
那么,这是否L2SQL支持创建一个动态查询?我有一个数据上下文已经适用于其他查询。根据参数的不同,我需要访问一些表,所以我也需要动态地编写From子句,或者我应该只包含所有的表并只关注where子句?
谢谢。
我正在构建一个动态查询。基本上,一个函数接收一个MyParams对象,其属性是参数;我创建了基于MyParams对象的Where子句并返回一个匿名类型的列表。linq-to-sql处理动态查询?
那么,这是否L2SQL支持创建一个动态查询?我有一个数据上下文已经适用于其他查询。根据参数的不同,我需要访问一些表,所以我也需要动态地编写From子句,或者我应该只包含所有的表并只关注where子句?
谢谢。
你可以做这样的事情,如果这是你想要什么:
var baseQuery = dataAccess.Table1.Where(arg => arg.Field1 = 1);
if (parameter[1] = true)
{
baseQuery = baseQuery.Where(arg => arg.Field2 = 'Test');
}
if (parameter[2] = true)
{
baseQuery =
from x in baseQuery
join y in dataAccess.Table2 on
x.Id equals y.Id
where y.Field3 = 'Something'
select x;
}
return baseQuery.ToList();
您应该能够使用我的answer另一个问题。你的问题不是一个确切的副本你的是更通用的,但为什么解决这个问题是完全一样的。
如果我一直在使用(MYDC TheDC =新MYDC()),是如何工作的呢?我该怎么处理multiple from子句? – frenchie 2011-05-07 19:03:28
@frenchie在实现查询之前不要处理“MyDC”。换句话说,'return baseQuery.ToList()'应该在'using'语句中。 – 2011-05-07 19:17:10
好,感谢您的建议 – frenchie 2011-05-07 19:21:39