在linq中如何处理存储过程

时间:2010-07-27 08:53:54

标签: asp.net linq linq-to-sql asp.net-3.5 linq-to-objects

我在Northwind database.server MS2008上工作。在linq我激活一个sp然后告诉我下面的错误:

语法:

<dxwgv:ASPxGridView ID="ASPxGridView1" runat="server" 
            AutoGenerateColumns="False" DataSourceID="LinqServerModeDataSource1" 
            KeyFieldName="CategoryID">
            <Columns>
                <dxwgv:GridViewCommandColumn VisibleIndex="0">
                    <EditButton Visible="True">
                    </EditButton>
                    <NewButton Visible="True">
                    </NewButton>
                    <DeleteButton Visible="True">
                    </DeleteButton>
                </dxwgv:GridViewCommandColumn>
                <dxwgv:GridViewDataTextColumn Caption="CategoryID" FieldName="CategoryID" 
                    VisibleIndex="1">
                </dxwgv:GridViewDataTextColumn>
                <dxwgv:GridViewDataTextColumn Caption="CategoryName" FieldName="CategoryName" 
                    VisibleIndex="2">
                </dxwgv:GridViewDataTextColumn>
                <dxwgv:GridViewDataTextColumn Caption="Description" FieldName="Description" 
                    VisibleIndex="3">
                </dxwgv:GridViewDataTextColumn>
            </Columns>
        </dxwgv:ASPxGridView>

 <dxdtlnq:LinqServerModeDataSource ID="LinqServerModeDataSource1" runat="server" 
        onselecting="LinqServerModeDataSource1_Selecting" />

C#语法:

protected void LinqServerModeDataSource1_Selecting(object sender, DevExpress.Data.Linq.LinqServerModeDataSourceSelectEventArgs e)
        {
             NorthwindDataContext db=new NorthwindDataContext();
             var r = db.SELECT_All_Product();   
            e.QueryableSource = r;
}

错误讯息:

错误1无法将类型'System.Data.Linq.ISingleResult'隐式转换为'System.Linq.IQueryable'。存在显式转换(您是否缺少演员?)

该怎么做才能解决这个错误。为什么需要custing.How to cust .Plz显示一些语法

1 个答案:

答案 0 :(得分:0)

原因是通常程序返回IEnumerable&lt; TEntity&gt;结果。
您需要一个表值函数才能使用IQueryable&lt; TEntity&gt;。有关详细信息,请查看this article

相关问题