![](/img/trans.png)
[英]Parameterized OPENJSON in SQL Server query using Entity Framework Core
[英]Entity Framework Core throws when using Include with parameterized input
在 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();
我究竟做錯了什么?
嘗試以更簡潔的方式命名參數,也許鍵“param”已經被使用:
var rawSql = new StringBuilder("SELECT * FROM dbo.Projects ");
var sqlParameters = new List<SqlParameter>();
rawSql.Append(string.Format("WHERE ProjectId < @projectId"));
sqlParameters.Add(new SqlParameter("@projectId", "20"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.