LinqDataSource查询帮助

时间:2009-06-29 00:35:46

标签: linq-to-sql c#-3.0 linqdatasource

我知道LINQ没有SQL IN子句,而是使用“contains”。我可以在LinqDataSource上使用它吗?我想写一个与此相同的简单查询: SELECT * FROM tableA WHERE tableA.requestType NOT IN(5,6,7,8)AND tableA.someBitField IS NULL。

这是否可以使用LinqDataSource开箱即用? 谢谢你的任何指示。

干杯, 〜在圣地亚哥

1 个答案:

答案 0 :(得分:3)

是的,很有可能。只需处理数据源上的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;
        }
    }
}