我試圖加入一個數組的Linq到EF查詢加入數組EF查詢
在執行命令定義時發生錯誤時,遇到下列錯誤。詳情請參閱內部例外。您的SQL語句的某些部分嵌套太深。重寫查詢或將其分解爲更小的查詢。
的代碼如下:
var vids = new List<string>();
using (var ctx = new MyDbContext())
{
var qry = ctx.Pickups.Where(p => p.UserName == User.Identity.Name);
if (someBoolean)
{
var v = GetVids(); // get the list of Ids from a web service
vids.AddRange(v);
}
if (vids.Count() > 0)
{
qry = qry.Join(vids, p => p.VId, v => v, (v, p) => p);
}
var data = qry
.Select(p => new
{
// etc.
});
}
的問題是,Web服務是不是與我使用EF與DB相關的,否則,我只是做了加入反對數據庫中的表格。我從Web服務中獲得的Id的數量可能會超過一百個(通常爲5-10)。如果我註釋Join,代碼工作正常,所以我知道錯誤在Join中。在vids中只有少數(最多約30個)ID,連接完美無缺。
你有什麼建議來解決這個問題?我唯一能想到的就是將ID列表插入到數據庫中,並以這種方式進行連接。這對我來說似乎不太吸引人。
我認爲問題不在於你提供的代碼部分 –