我有一个SP,我想从linq调用。 SP有5个参数,但我只想传递/需要2个参数。
当我在代码中添加参数时,我将如何调用SP,因为它不需要构建,因为它需要全部5个。
答案 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);
}