必须声明标量变量 - 为什么我的参数不被识别?

时间:2014-03-25 20:47:09

标签: vb.net entity-framework

我正在使用Entity Framework使用ExecuteStoreQuery

向数据库发送查询
If (DBEntity.ExecuteStoreQuery(Of Integer)("SELECT COUNT(ReceiptUID) FROM qryRptSrc_Cust_GoodsReceipt_Issues WHERE ReceiptUID = @Recpt", ReceiptUID)(0) > 0) Then ....

这给了我一个错误消息,即我的标量变量@Recpt尚未声明。我知道那个错误信息意味着什么,但我想知道为什么它会被抛出这种情况。 ReceiptUID是具有正确值的Guid。传递的参数不必是DbParameter个对象,它们只能是值,它应该可以正常工作。我之前做过的没有问题,甚至是MSDN状态

The parameters value can be an array of DbParameter objects or an array of parameter values. If only values are supplied, an array of DbParameter objects are created based on the order of the values in the array.

我可以创建一个DbParameter对象,但我想知道为什么这个案例不起作用。

1 个答案:

答案 0 :(得分:2)

令牌回答:

Try @p0 instead of @Recpt