簡體   English   中英

將 Include 與參數化輸入一起使用時,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM