C# LINQ到存储过程。我是否可以使用动态参数列表来调用SP,而不是强制键入参数?
我正在努力使我的代码更加动态。所以我现在用一些像这样的强类型参数调用存储过程C# LINQ到存储过程。我是否可以使用动态参数列表来调用SP,而不是强制键入参数?,c#,asp.net,linq,dynamic,C#,Asp.net,Linq,Dynamic,我正在努力使我的代码更加动态。所以我现在用一些像这样的强类型参数调用存储过程 var results = datacontext.spReturnUsers(txtUserId.Text, txtUserFirstName.Text, txtUserLastName.Text); 现在我希望能够循环并动态添加参数。因此,如果明天我在我的面板中添加另一个搜索字段,如用户地址或其他内容,那么我就可以在控件中循环并动态添加参数,而不必返回并更改强类型存储过程调用 类似于LINQ之前,您需要在存储过程
var results = datacontext.spReturnUsers(txtUserId.Text, txtUserFirstName.Text, txtUserLastName.Text);
现在我希望能够循环并动态添加参数。因此,如果明天我在我的面板中添加另一个搜索字段,如用户地址或其他内容,那么我就可以在控件中循环并动态添加参数,而不必返回并更改强类型存储过程调用
类似于LINQ之前,您需要在存储过程中使用parameters.add()
有什么方法可以实现这一点吗?仍然使用LINQ to SQL?您可以让sp接收一个参数,然后循环并动态创建该参数的值。然后,存储的进程将知道xml参数中会出现什么……这是一种将可变长度参数传递到数据库的方法。
DataContext
类的ExecuteCommand
和ExecuteQuery
方法采用一个简单的参数(params object[]
)数组。在这些方面有一些缺陷,但在大多数情况下,它们工作得很好,编写的代码比填充SqlCommand
的参数要少
context.ExecuteCommand("EXEC usp_UpdateProductName {0}, {1}",
productID, productName);
这就是它真正的意义所在。哦,是的,那太好了。它确实节省了处理整个sqlclient然后构建查询的时间。不错+1.