0

当我使用 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\"."

请建议

谢谢,

4

2 回答 2

1

除了杰基所说的,我认为问题在于你的参数之间没有空格。尝试:

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

希望这可以帮助

于 2012-05-31T09:33:46.373 回答
0

我认为您在 {0} 和 {1} 之间缺少逗号...

但是为什么不将存储过程导入实体模型中,以便您可以像这样调用存储过程:

DbContext.getCustomerDetails(CustomerId, OrderId)

于 2012-05-31T09:17:52.887 回答