我正在使用带有存储过程的Linq to SQL。
即使存储过程中设置了参数的默认值,我也必须向存储过程传递参数,即使这些参数是可选的。是否有任何方法可以跳过传递默认参数。
谢谢
我正在使用带有存储过程的Linq to SQL。
即使存储过程中设置了参数的默认值,我也必须向存储过程传递参数,即使这些参数是可选的。是否有任何方法可以跳过传递默认参数。
谢谢
CREATE PROCEDURE sp_Test
@optionalParam INT = 0
AS
-- your logic gose here
.designer.cs
文件中,您将默认得到以下内容。[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.sp_Test")]
public ISingleResult<sp_TestResult> sp_Test([global::System.Data.Linq.Mapping.ParameterAttribute(Name="optionalParam", DbType="Int")] System.Nullable<int> optionalParam)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), optionalParam);
return ((ISingleResult<sp_TestResult>)(result.ReturnValue));
}
所以你需要 重载
这个函数,以下是代码:
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.sp_Test")]
public ISingleResult<sp_sp_TestResult> sp_Test()
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())));
return ((ISingleResult<sp_sp_TestResult>)(result.ReturnValue));
}
注意
DBML 设计文件
将在每次添加/删除任何存储过程或表时重新生成,因此请确保在保存之前保留您的方法,或者将所有重载方法移动到新的局部类中。