4
使用Linq調用傳遞單個字符串的存儲過程,該存儲過程返回一個包含字符串和int的數據集行。Linq指定的類型「字符串」不是有效的提供程序類型
代碼:
PESQLDataContext pe = new PESQLDataContext(strConnStr);
pe.ObjectTrackingEnabled = false;
gvUnitsPassed.DataSource = pe.PassedInspection(Line);
gvUnitsPassed.DataBind();
pe.dispose();
當代碼運行的異常被調用如下: 唯一的例外是在IExecuteResult結果=語句拋出: 封閉在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;
}
}
}
}
}
我有其他存儲過程具有類似的參數運行很好。
感謝
是的,謝謝你的問題。當我第一次將存儲過程添加到設計器時,我的參數爲char(4)。然後我收到上述錯誤。所以我將參數改爲varchar(4)。我必須轉置字符串參數。在測試中,我刪除了存儲過程,將參數替換爲char(4)並重新添加了proc。 它現在映射爲varchar(4),即使它是存儲過程中的char(4)。謝謝您的幫助。 – 2010-04-21 22:53:15
感謝您將我的頭從靠牆的幾個骨頭中拯救出來。 – roufamatic 2010-11-30 00:27:47