我是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()
我试图让来自GuestList的FriendList中的所有人都显示在Repeater控件中。阅读论坛后,我能够在myNoPic声明中将.first()附加到noPic,最后得到一个结果,但这只给了我第一个元素。有没有人对如何做到这一点有任何建议?
答案 0 :(得分:1)
noPic
是查询。它不是整数 - 它是整数的序列。所以你不能把它转换成一个整数,听起来你不想要它。
我的猜测是你想要的:
Dim show = From s In myEntities.UserProfiles
Where noPic.Contains(s.UserID)
Select s.UserID, s.FirstName, s.LastName, s.ImUrl
或者,将整个事物写为连接开始。 (我不会使用VB LINQ语法,否则我会为你做这件事。)
答案 1 :(得分:0)
问题归结为以下几点:
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
是我们想要的。它会将您的第二个查询更改为“将我的所有UserProfiles设置为其ID在noPic中”。