В EF Core 2.2.6 мне нужно построить динамический запрос с параметризованным вводом. Я начинаю с построения оператора:
var rawSql = new StringBuilder("SELECT * FROM dbo.Projects ");
var sqlParameters = new List<SqlParameter>();
rawSql.Append(string.Format("WHERE ProjectId < @param"));
sqlParameters.Add(new SqlParameter("@param", "20"));
Затем выполняю его:
var projects = await _context.Projects.FromSql(rawSql.ToString(), sqlParameters.ToArray())
.ToListAsync();
Это работает. Но если я добавлю Include
, то получится
ArgumentException: SqlParameter уже содержится в другой SqlParameterCollection`
var projects = await _context.Projects.FromSql(rawSql.ToString(), sqlParameters.ToArray())
.Include(p => p.Managers)
.ToListAsync();
Что я делаю не так?