C# 如何将SQL存储过程中的输入获取到return语句
上面的代码显示了从SQL Server返回整数值的存储过程C# 如何将SQL存储过程中的输入获取到return语句,c#,sql,linq,edmx,C#,Sql,Linq,Edmx,上面的代码显示了从SQL Server返回整数值的存储过程 alter procedure [dbo].[XXX] ( @vendorworksationID uniqueidentifier , @sdate date, @edate date, @total int out ) begin select @total = COUNT(*) from AdvertisedCampaignHistory a where
alter procedure [dbo].[XXX]
(
@vendorworksationID uniqueidentifier ,
@sdate date,
@edate date,
@total int out
)
begin
select @total = COUNT(*)
from AdvertisedCampaignHistory a
where
CAST(a.CreationDate AS DATE) BETWEEN CAST(@sdate as DATE) AND CAST(@edate as DATE)
and a.CampaignID in (select cc.BCampaignID
from BeaconCampaign cc, VendorWorkStation vw
where cc.VendorWorkStationID = vw.VendorWorkStationID
and VendorID = @vendorworksationID)
return @total
end
上面的代码显示了我如何在C#端传递参数和检索值
在运行代码时,我遇到以下错误
存储数据提供程序返回的数据读取器没有
足够的列用于请求的查询
此错误的可能原因是什么?实体框架无法支持存储过程即时返回标量值。若要使此操作适用于实体框架,需要使用“选择”而不是“返回”来返回值
更多参考:我没有得到错误bt,我总是得到0作为返回值
ObjectParameter Output = new ObjectParameter("total", typeof(Int32));
var resBC = this.Context.getTotalSentBeaconCampaign(VendorWorkstationID, sdate,edate,Output).FirstOrDefault();