代码之家  ›  专栏  ›  技术社区  ›  Joe Pitz

Linq指定的类型“string”不是有效的提供程序类型

  •  4
  • Joe Pitz  · 技术社区  · 16 年前

    使用LINQ调用传递单个字符串的存储过程,存储过程返回包含字符串和int的数据集行。

    代码:

     PESQLDataContext pe = new PESQLDataContext(strConnStr);
            pe.ObjectTrackingEnabled = false;
    
     gvUnitsPassed.DataSource = pe.PassedInspection(Line);
     gvUnitsPassed.DataBind();
    
    pe.dispose();
    

    当代码运行时,会在下面调用异常: 在iexecuteresult result=语句中引发异常: 附带的是designer.cs文件中的结果类。

    [Function(Name = "dbo.PassedInspection")]
        public ISingleResult<PassedInspectionResult> PassedInspection([Parameter(Name = "Model", DbType = "VarChar(4)")] string model)
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), model);
            return ((ISingleResult<PassedInspectionResult>)(result.ReturnValue));
        }
    
        public partial class PassedInspectionResult
        {
    
            private string _Date;
    
            private int _Passed;
    
            public PassedInspectionResult()
            {
            }
    
            [Column(Storage = "_Date", DbType = "string NULL")]
            public string Date
            {
                get
                {
                    return this._Date;
                }
                set
                {
                    if ((this._Date != value))
                    {
                        this._Date = value;
                    }
                }
            }
    
            [Column(Storage = "_Passed", DbType = "Int NULL")]
            public int Passed
            {
                get
                {
                    return this._Passed;
                }
                set
                {
                    if ((this._Passed != value))
                    {
                        this._Passed = value;
                    }
                }
            }
        }
    }
    

    我有其他具有类似参数的存储过程,运行得很好。

    谢谢

    1 回复  |  直到 16 年前
        1
  •  7
  •   Foole    16 年前

    我很肯定是这条线引起了问题:

    [Column(Storage = "_Date", DbType = "string NULL")]
    

    特别是“字符串”位。它应该是字段在存储过程中定义的数据类型。例如varchar(…),ntext等。