作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当执行没有返回值但具有用户定义的表类型的存储过程时:
var dbStrings = new SqlParameter("@data", SqlDbType.Structured)
{
TypeName = new StringListType().Name,
Value = new StringListType().DataRecordsFrom(listOfStrings.Select(p => p.Value).ToList())
};
_dbContext.Database.ExecuteSqlCommand("exec [dbo].[InsertRecords] @SID, @filerType, @data", sid.ToString(), "Field", dbStrings);
我得到一个错误
When executing a command, parameters must be exclusively database parameters or values
如何通过带有多个输入参数(一些 UDTT)的 DbContext
执行存储过程?
最佳答案
在这种情况下,您需要(错误消息告诉您)创建一个 SqlParameter
数组,并在调用 ExecuteSqlCommand
时传递它。
var sqlParams = new SqlParameter[]
{
new SqlParameter("@SID", sid.ToString()),
new SqlParameter("@filterType", "Pin"),
new SqlParameter("@data", SqlDbType.Structured)
{
TypeName = new StringListType().Name,
Value = new StringListType().DataRecordsFrom(listOfStrings.Select(p => p.Value).ToList())
}
};
_dbContext.Database.ExecuteSqlCommand("exec [dbo].[InsertRecords] @SID, @filterType, @data", sqlParams);
关于c# - EF : When executing a command, 参数必须完全是数据库参数或值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51750922/
我是一名优秀的程序员,十分优秀!