我知道LINQ没有SQL IN子句,而是使用"contains“。我可以在LinqDataSource上使用它吗?我想编写一个与此等价的简单查询: SELECT * FROM tableA WHERE tableA.requestType NOT IN (5,6,7,8) AND tableA.someBitField is NULL。
是否可以使用开箱即用的LinqDataSource?谢谢你的指点。
干杯,~在圣地亚哥
发布于 2009-06-29 00:44:50
是的,很有可能。只需处理数据源上的Selecting事件。MSDN上的LinqDataSoruce类页面已经包含了一个很好的示例。修改它:
public partial class Default3 : System.Web.UI.Page
{
int[] validRequestTypes = { 5, 6, 7, 8 };
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LinqDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
using(var dc = new MyDataContext())
{
var qry = from item in dc.tableAs
where validRequestTypes.contains(item.requestType)
&& item.someBitField == null
select item;
e.Result = qry;
}
}
}https://stackoverflow.com/questions/1056137
复制相似问题