LINQ加入两个表

我有两个表说A和B.一个cols是GUID,someintVar,someMoreIntvar B col是GUID,someItemNO,SomeItemDesc

现在对于一个GUID,我在表A中只有一行。但是对于相同的GUID,我可以有多行。 现在我想基于GUID查询数据库并选择类中的值。 该类将具有一个列表,该列表将包含来自第二个表的不同行。 我该怎么做?

现在我根据该GUID的第二个表中有多少行在结果中获取了很多项。

var itemColl = from p in db.A join item in db.B on p.CardID equals item.CardID where p.CardID == "some GUID" select new { p.CardID, p.secondCol, p.ThirdCol, item.ItemNo // How to add them in a collection or list. }; 

没有,但如何重写它:

 var itemColl = from p in db.A where p.CardID == "some GUID" select new { p.CardID, p.secondCol, p.ThirdCol, Items = db.B.Where(b=>b.CardID==p.CardID) //.Select(b=>b.ItemNo) [see comments] } 

或者,您也许可以分组……

假设您在GUID上的A和B之间设置了外键关系。 (如果你不这样做,你的数据库模式就会被破坏,需要修复)

 var itemColl = from p in db.A where p.CardID == "some GUID" select new { p.CardID, p.secondCol, p.ThirdCol, Items = p.Bs } 

假设这是在你class级的NEW或LOAD方法中发生的……这就是我要做的…

 dim myAItem AS A = (from x in db.As WHERE x.CardID == MyGUIDValue).SelectSingleOrDefault ' Assign Variables Here Me.AValue1 = myAItem.FromDbValue1 dim itemColl = (from b in db.Bs on b == MyGUIDValue).ToList me.ItemList = New List(of MySubClass) For each bItem as B in itemColl dim item as New MySubClass 'Assign Variables Here, ex: item.Value1 = bItem.MyDbValue1 me.ItemList.Add(item) Next