如何使用linq传递两个变量值

时间:2012-05-31 09:12:04

标签: asp.net-mvc-3 linq stored-procedures

当我使用linq

将两个变量值传递给存储过程时,我收到错误 下面是我用来将变量传递给linq的方法

Customer objCustomer = DbContext.ExecuteStoreQuery<Customer>
                ("exec getCustomerDetails {0}{1}", CustomerId, OrderId).AsQueryable().ToList();
下面的

是我的存储过程

create procedure getCustomerDetails 
@CustomerId int,
@OrderId int
as
select * from customer c
where c.CustomerId = @CustomerId and c.OrderId = @OrderId

下面是我得到的错误

Message = "Must declare the scalar variable \"@p0@p1\"."

请建议

感谢,

2 个答案:

答案 0 :(得分:1)

对于jackie所说的内容,我认为问题在于您的参数之间没有空格。试试:

("exec getCustomerDetails {0} {1}", CustomerId, OrderId)

希望这会有所帮助

答案 1 :(得分:0)

我认为你错过了{0}和{1}之间的逗号......

但是你为什么不import the stored procedure into your entity model,所以你可以像这样调用存储过程:

DbContext.getCustomerDetails(CustomerId, OrderId)