Как избежать преобразования в массив INT с помощью Contains в запросах Entity To Entities? - PullRequest
0 голосов
/ 17 октября 2011

sIDs содержит идентификаторы типа строки.Во втором запросе я хочу получить все записи с идентификаторами, содержащимися в sIDs.Поскольку sIDs является строковым массивом, я получаю ошибку в where sIDs.Contains(t.Id).Я не могу использовать where sIDs.Contains(t.Id.ToString()), потому что EF не поддерживает ToString в запросе.Я думал преобразовать sIDs в массив int, и тогда я мог бы использовать where CONVERTED_TO_INT_IDs.Contains(t.Id).

Есть ли другой способ сделать это?

var sIDs = (from t in cxt.myTbl
            select t.Parameters).ToList();

var oList = (from t in cxt.myTbl2
             where sIDs.Contains(t.Id)
             select t).ToList();

1 Ответ

0 голосов
/ 17 октября 2011

Посмотрите ответ здесь: Проблема с преобразованием int в строку в Linq в сущности

(кстати, это первое совпадение в Google при поиске "ef tostring")

...