我有一个SP,我想从linq调用。 SP有5个参数,但我只想传递/需要2个参数。

当我在代码中添加参数时,我将如何调用SP,因为它不需要构建,因为它需要全部5个。

有帮助吗?

解决方案

你会有这样的事情:

MyDbDataContext db = new MyDbDataContext();

db.MyStoredProc(customerID, "sometext", null, null, null);

成功/失败取决于你的sproc中的SQL语句处理那些最后3个参数的空值。

其他提示

另一种选择是将存储的proc再次拖动到DBML中,并删除不想传入的参数。

超载 电话会议。

我没有在我面前,但你转到你的DataAccessName.cs文件并创建一个具有相同签名的方法名称

auto gen'd sproc方法签名:

void sp_sproc(int a, int b, int c, int d, int e);

您可以在DataAccessName.cs文件中进行此操作

void sp_sproc(int a, int b)
{
    this.sp_sproc(a,b,0,0,0);
}

如果params可以为空,那么

void sp_sproc(int? a, int? b, int? c, int? d, int? e);

然后你可以做

void sp_sproc(int a, int b)
{
    this.sp_sproc(a,b,null,null,null);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top