Значение типа 'System.Linq.IQueryable (Of Integer)' не может быть преобразовано в Integer - PullRequest
1 голос
/ 11 августа 2011

Я новичок в EF Linq и несколько дней боролся с этим запросом. Прочитав этот форум, я сумел зайти так далеко:

Dim noPic = (From f In myEntities.FriendLists
             Where (f.UserID = Profile.ID)
             Select f.FriendID).Except(From g In myEntities.GuestLists
                                         Where g.EventID = _id
                                         Select g.FriendID)
Dim myNoPic As Integer = noPic
Dim show = From s In myEntities.UserProfiles
           Where s.UserID = myNoPic
           Select s.UserID, s.FirstName, s.LastName, s.ImUrl
Repeater2.DataSource = show
Repeater2.DataBind()

Я пытаюсь заставить всех из FriendList, которых еще нет в GuestList, отображать в элементе управления Repeater. Прочитав форум, я смог добавить .First () к noPic в объявлении myNoPic и, наконец, получить результат, но это дало мне только первый элемент. У кого-нибудь есть советы, как этого добиться?

Ответы [ 2 ]

1 голос
/ 11 августа 2011

noPic - это запрос .Это не целое число - это последовательность целых чисел.Поэтому вы не можете преобразовать его в одно целое число, и это звучит так, как будто вы этого не хотите.

Я предполагаю, что вы хотите:

Dim show = From s In myEntities.UserProfiles
           Where noPic.Contains(s.UserID)
           Select s.UserID, s.FirstName, s.LastName, s.ImUrl

В качестве альтернативы напишитеВсе это как объединение для начала.(Я не на самом деле с синтаксисом VB LINQ, иначе я бы сделал это для вас.)

0 голосов
/ 11 августа 2011

Проблема сводится к следующим строкам:

Dim myNoPic As Integer = noPic

и

Where s.UserID = myNoPic

Я думаю, что вы пытаетесь достичь чего-то вроде этого:

Dim noPic = (From f In myEntities.FriendLists
         Where (f.UserID = Profile.ID)
         Select f.FriendID).Except(From g In myEntities.GuestLists
                                     Where g.EventID = _id
                                     Select g.FriendID)
Dim myNoPic As Integer = noPic
Dim show = From s In myEntities.UserProfiles
       Where noPic.Contains(s.UserID)
       Select s.UserID, s.FirstName, s.LastName, s.ImUrl

Contains - это то, что мы хотели. Он изменяет ваш второй запрос на «Получить мне все пользовательские профили, где их идентификатор указан в noPic».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...