Mor*_*ori 6 entity-framework code-first
我试图参数化动态查询并首先在Entity Framework代码中使用SqlQuery方法运行它.
我第一次执行SqlQuery它按预期工作,所以我确信查询或参数没有任何问题,但我立即执行相同的命令第二次相同的参数,我得到这个错误
"SqlParameter已经包含在另一个SqlParameterCollection中."
由于我已经ToList()在这里使用方法,我不知道原因是什么!
这是模拟代码.
using (var context = Common.GetDbContext())
{
var parameters = new List<SqlParameter>();
//populating parameters here...
var sqlQuery = "Select * from MyTable where UserId=@p1 and And Active=@p2";
// first time
var result = context.Database.SqlQuery<ResultType>(sqlQuery, parameters.ToArray()).ToList();
//second time
result = context.Database.SqlQuery<ResultType>(sqlQuery, parameters.ToArray()).ToList();
}
Run Code Online (Sandbox Code Playgroud)
任何的想法?
嗨SqlParameter是可克隆的.试试这个:
result = context.Database.SqlQuery<ResultType>(sqlQuery, parameters.Select(x => x.Clone()).ToArray()).ToList();
Run Code Online (Sandbox Code Playgroud)
请参阅https://msdn.microsoft.com/en-us/library/vstudio/bb338957%28v=vs.100%29.aspx
| 归档时间: |
|
| 查看次数: |
6044 次 |
| 最近记录: |