时间:2021-07-01 10:21:17 帮助过:15人阅读
然而第二次查询的时候会报错,提示
另一个 SqlParameterCollection 中已包含 SqlParameter。
网上的解决方案是
把
var ret=context.Database.SqlQuery<Student >(sqlStr, paramsList.ToArray()).AsQueryable();
改成
var ret = context.Database.SqlQuery<EnrLog_M>(sqlStr, paramsList.Select(x=> ((ICloneable)x).Clone()).ToArray()).AsQueryable();
然而并没有用
除非是
var ret = context.Database.SqlQuery<EnrLog_M>(sqlStr, paramsList.Select(x=> ((ICloneable)x).Clone()).ToArray()).Tolist();
但这时候所以的数据都已经在内存里了,
不会再查数据库了,所以使用Clone也是多余的。
目前没有比较好的解决办法,使用DbHelper,它内部也是实现了ToList()
var ret2 = DbHelper.ExcuteQuery<EnrLog_M>(sqlStr, CommandType.Text, paramsList.ToArray());
【EF框架】另一个 SqlParameterCollection 中已包含 SqlParameter。
标签:uname cut esc span 传递 内容 ble one orderby