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