Linq to SQL SP参数

时间:2009-07-30 22:16:25

标签: linq linq-to-sql overloading

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

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

3 个答案:

答案 0 :(得分:3)

你会有这样的事情:

MyDbDataContext db = new MyDbDataContext();

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

overload 电话会议。

我没有在我面前,但你转到你的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);
}