0

linq を使用して 2 つの変数値をストアド プロシージャに渡しているときにエラーが発生します

以下は、変数を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 に答える