如果我在LINQ中的存储过程中使用EXEC语句,则会遇到麻烦

时间:2011-12-27 11:25:23

标签: linq-to-sql

如果我在存储过程中使用exec语句,并且当我尝试使用linq获取带有该存储过程的数据时,我遇到了麻烦。

如果我使用exec命令,那么它将不会显示list(),如下所示

LS25DataContext mydb = new LS25DataContext();
list<customer> IResult = mydb.usp_search(int custid,int iprice).ToList();

使用linq时,我可以在存储过程中使用exec命令吗?

如果我使用下面的程序,那么我可以得到.ToList()方法。

CREATE PROCEDURE usp_test_vats_2 1148, 8
                    @i INT,
                    @j int
AS
BEGIN

    SELECT
                    *
                FROM
                    customers
                where
                    icustid = @i AND iPriceStr = @j


END

但如果我使用以下程序,那么我无法获得.ToList()方法。

ALTER PROCEDURE usp_test_vats_2 1148, 8
                    @i INT,
                    @j int
AS
BEGIN

    declare @sSQL VARCHAR(8000)

    SET @sSQL = 'SELECT
                    *
                FROM
                    customers
                where
                    icustid = ' + CONVERT(VARCHAR, @i) + ' AND iPriceStr = ' + CONVERT(VARCHAR, @j) + ''


    EXEC(@sSQL)



END

非常感谢...

0 个答案:

没有答案