0
我想獲取與用戶具有相同標記的人員列表。 爲此,我需要使用反應原生提取和實體框架。 我也嘗試了一些原始的SQL與EF,但無法使它的工作,只是不知道如何。將原生JSON數組作爲參數反饋到LINQ包含中
我有兩次抓取。兩者都返回一個典型的JSON對象數組。所以我這樣做:
var users = db.Users
.Include("TagUsers")
.Where(u => u.TagUsuario.Any(t => tags.Contains(t.idTag))).ToList();
的標籤變量是從一個對象數組一個陣營本地獲取,這在我的C#功能類型IList<>long
的。
的問題是,如果這個數組有一個元素,像這樣const tags = [1];
還是從獲取這樣
{0}
Tags:
idTag: 1
Name: "MyTag"
我可以返回的人這個標籤,但如果我不喜歡這個const tags = [1, 2];
或
{0}
Tags:
idTag: 1
Name: "MyTag"
{1}
Tags:
idTag: 2
Name: "AnotherTag"
它對我的LINQ請求沒有任何迴應。
但是,如果我做這樣的事情在我的C#功能:
IList<>long tags = new List<>long();
tags.Add(1);
tags.Add(2);
它完美。
這裏的問題是來自提取的對象數組與LINQ語句(Any,Contains)不「兼容」。所以我正在尋找替代方案。
我該怎麼辦? 更改IList參數?我正在使用它,因爲接受null而不會崩潰。 更改LINQ? 使用原始SQL? 也許一些轉換隻能得到一個帶有標籤的int數組,而不是一個對象。
感謝您的任何提示和解決方案。
您可以將'tags'投影到數組中嗎?例如'tags.Select(t => t.idTag)' – Shoe
嘗試在IList上調用「AsEnumerable()」 – barakcaf