1

DBML 设计器中的代码


[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.uspCalculateRiskMatrix")]   
      public int uspCalculateRiskMatrix([global::System.Data.Linq.Mapping.ParameterAttribute(Name="CashPrice", DbType="Float")] System.Nullable cashPrice,     [global::System.Data.Linq.Mapping.ParameterAttribute(Name="InputAPH", DbType="Int")] System.Nullable inputAPH,    [global::System.Data.Linq.Mapping.ParameterAttribute(Name="Bushels", DbType="Int")] System.Nullable bushels,     [global::System.Data.Linq.Mapping.ParameterAttribute(Name="PercentageCover", DbType="Float")] System.Nullable percentageCover,    [global::System.Data.Linq.Mapping.ParameterAttribute(Name="BasicEstimate", DbType="Float")] System.Nullable basicEstimate,     [global::System.Data.Linq.Mapping.ParameterAttribute(Name="CallStrike", DbType="Float")] System.Nullable callStrike,     [global::System.Data.Linq.Mapping.ParameterAttribute(Name="CallBu", DbType="Int")] System.Nullable callBu,     [global::System.Data.Linq.Mapping.ParameterAttribute(Name="CallPremium", DbType="Float")] System.Nullable callPremium,     [global::System.Data.Linq.Mapping.ParameterAttribute(Name="PutStrike", DbType="Float")] System.Nullable putStrike,     [global::System.Data.Linq.Mapping.ParameterAttribute(Name="PutBu", DbType="Int")] System.Nullable putBu,    [global::System.Data.Linq.Mapping.ParameterAttribute(Name="PutPremium", DbType="Float")] System.Nullable putPremium,    [global::System.Data.Linq.Mapping.ParameterAttribute(Name="TotalAcres", DbType="Float")] System.Nullable totalAcres,     [global::System.Data.Linq.Mapping.ParameterAttribute(Name="AvgPrice", DbType="Float")] System.Nullable avgPrice,     [global::System.Data.Linq.Mapping.ParameterAttribute(Name="PerAcreProductionCost",     DbType="Float")] System.Nullable perAcreProductionCost,    [global::System.Data.Linq.Mapping.ParameterAttribute(Name="SpringPrice", DbType="Float")] System.Nullable springPrice)   
      {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), cashPrice, inputAPH, bushels, percentageCover, basicEstimate, callStrike, callBu, callPremium, putStrike, putBu, putPremium, totalAcres, avgPrice, perAcreProductionCost, springPrice);
            return ((int)(result.ReturnValue));
      }

==================================================== ========================

我将 SP 与 gridview 绑定的代码


 var a = from risk in HRM_dc.uspCalculateRiskMatrix(CashPrice, InputAPH, Bushels, PercentageCover, BasicEstimate, CallStrike, CallBu, CallPremium,
                                                                 PutStrike, PutBu, PutPremium, TotalAcres, AvgPrice, PerAcreProductionCost, SpringPrice)
                        select risk;

                GridView gvRisk = new GridView();
                gvRisk.DataSource = a;
                gvRisk.DataBind(); 

错误:错误 2 找不到源类型“int”的查询模式的实现。未找到“选择”。

请帮助快速TIA

4

1 回答 1

0

这种错误(未找到查询模式)通常发生在您缺少命名空间...或源对象未实现 IEnumerable 时。

检查存储过程的返回类型,它是Integer类型并且它没有实现IEnumerable<T>也不是集合类型。如果您使用整数数组,int[] intArray = {10, 20};那么您可以使用 linq。

你不能像这样实现它。更多 Gridview 的DataSource属性不支持显示这种类型的数据..

参考:
找不到查询模式
Linq 错误的实现“找不到源类型‘System.Linq.IQueryable’连接未找到的查询模式的实现’

编辑:根据评论:检查这个Accessing dynamic created stored procedure from LINQ,它可能是你的解决方案..

于 2012-05-10T13:46:07.213 回答