我有两张桌子说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.
};
答案 0 :(得分:5)
没有了,但重新写了一下怎么样:
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]
}
或者,您也许可以分组......
答案 1 :(得分:0)
假设您在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
}
答案 2 :(得分:-2)
假设这是在你班级的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