使用vb.net实现linq中的多对多
我在一个数据库中有3个表: 我在网上搜索了很长一段时间,试图了解如何在linq和vb.net中进行查询,以访问事件表和个人表,例如显示个人1参与ect的所有事件。我想知道是否有人能给我指出正确的方向,或者知道有什么好的教程网站有类似的例子 提前感谢:)使用vb.net实现linq中的多对多,vb.net,linq-to-sql,Vb.net,Linq To Sql,我在一个数据库中有3个表: 我在网上搜索了很长一段时间,试图了解如何在linq和vb.net中进行查询,以访问事件表和个人表,例如显示个人1参与ect的所有事件。我想知道是否有人能给我指出正确的方向,或者知道有什么好的教程网站有类似的例子 提前感谢:) 卢克。听起来你需要这样的东西 Public Function GetEventsByIndividual(ByVal individual As Individual) As IEnumerable(Of Event) Return
卢克。听起来你需要这样的东西
Public Function GetEventsByIndividual(ByVal individual As Individual) As IEnumerable(Of Event)
Return individual.IndividualTakingParts _
.SelectMany(Function(itp) itp.Events)
End Function
从
IndividualTakingPart
表中“启动”查询
Dim Events = From itp in context.IndividualTakingPart _
Where itp.Individual_id = 1 _
Select itp.Events
更新(回应以下评论)
您需要在联接表上有一个主键,以启用与其他表的关联。这将是完美的,但是。Select不是单个类的一部分:/出于某种原因,它说individualTakingPart不是单个表的一部分。我想知道我的关系现在是否正确?它选择了itp.Events(它发送的事件)只能访问事件表中各个TakingParts中的IDtable@Houlahan-检查您的datacontext是否已正确创建。您应该可以从IndividualTakingPart访问Individual和Events表。就我所看到的设置是否正确而言,我认为上下文可以定义为Dim db as New SailMembersDataContext?@Houlahan-是的。查看
sailmembersdataclass.designer.vb
文件(隐藏在dbml
文件下)。查找IndividualTakingPart
类。应该有两个将该表链接到其他表。您看到了吗?另外,您应该向IndividualTakingPart表添加一个主键—无论是它的另一个id列还是包含两个现有外键的复合键。不确定这是否会修复关联,但值得一试。