当我尝试查询数据库以检索选定船员的活动时,我给出"Loca Sequence Error"
这是代码:
private Lst_active as new entityset(of Activity)
private crw_list as new entityset(of Crew)
checklistbox.Items.addrange(Dbase.Crew)
然后我在复选框中从所有船员中选择,并将选中的船员插入到船员的实体集中以供进一步使用。
crw_list.addrange(Checkedlistbox.checkeditems)
Lst_active.AddRange(From x In DBase.Stored_Activities Join z In crw_list On x.EMP_NO Equals z.EMP_NO
Select x)
有别的办法吗?还是我做错了?
你还没有说你的模型看起来像什么,但以下概念应该工作:
Dim active = (From x In DBase.Stored_Activities
Join z In DBase.Stored_Crews On x.EMP_NO Equals z.EMP_NO
Select x).ToList()
如果您有一个本地内存集合,并且您需要的项与该集合中的一个字段匹配,则使用Contains
代替:
From x in DBase.StoredActivities
Where localList.Contains(x.EMP_NO)
select x
你的列表应该只包含连接列*,在这种情况下应该由crw_list.Select(Function(x) x.EMP_NO)
。
我找到了解决方案,只是把查询的两个部分调换了位置。
From z In crw_list Join x In DBase.Stored_Activities On x.EMP_NO Equals z.EMP_NO
Select x
它将查询从linq到SQL更改为linq到对象,其中包含SQL连接查询