我正在使用实体框架6。 在我的数据库中,我有这些表:
MasterTable ( Id , name)
Child1 ( ID , name , vl1 , Master_ID)
Child2 ( ID , name , vl2 , MasterID )
Child3 (ID , name , vl3 , Master_ID )
Child3Itm ( ID , name , Child3_ID)
对于给定的MasterTable
项目,我想从数据库中加载单个查询:
Child1
,其中vl1 > 5
Child2
,其中vl2 > 6
Child3
,其中vl3 > 7
然后在每个Child3
中加载所有Child3Itm
内容。
我正在使用此查询:
Dim lst = (From t In context.MasterTable.Where(Function(t1) t1.id = 7)
Select New With {
t,
.chld1 = t.child1s.Where(Function(t21) t21.vl1 >5),
.chld2 = t.child2s.Where(Function(t31) t31.vl2>6 ),
.chld3 = t.child3s.Where(Function(t41) t41.vl3>7).Select(Function(t411) t411.Child3Itms)
}).ToList
问题是没有选择Child3
。其他所有都还可以。我能做什么?预先感谢!
答案 0 :(得分:0)
如果看不到您的数据,将很难诊断。但是,由于您可以访问调试器,因此可以自己完成。使用下面的代码,遍历每一行并检查变量。应该很容易看到代码失败的地方
LO = layout_nicely(net)
LO2 = LO
alpha=pi/4
LO2[,1] = cos(alpha)*LO[,1] + sin(alpha)*LO[,2]
LO2[,2] = -sin(alpha)*LO[,1] + cos(alpha)*LO[,2]
par(mfrow=c(1,2))
plot(net, layout=LO)
plot(net, layout=LO2)
可能是您的问题中的错字。确保child3s的条件正确:
LO3 = LO
alpha=pi/4
LO3[,1] = -LO3[,1]
plot(net, layout=LO)
plot(net, layout=LO3)
应该是这个吗?
Dim masters = From t In context.MasterTable Where t = 7
Dim child1s = From m In masters Where m.child1s.vl1 > 5
Dim child2s = From m In masters Where m.child2s.vl2 > 6
Dim child3s = From m In masters Where m.child3s.vl3 > 7
Dim child3i = child3s.Child3Itms
答案 1 :(得分:0)
Dim lst = (From t In context.MasterTable.Where(Function(t1) t1.id = 7)
Select New With {
t,
.chld1 = t.child1s.Where(Function(t21) t21.vl1 >5),
.chld2 = t.child2s.Where(Function(t31) t31.vl2>6 ),
.chld3 = t.child3s.Where(Function(t41) t41.vl3>7),
.chld3itms = t.child3s.Where(Function(t51) t51.vl3>7).Select(Function(t511) t511.Child3Itms)
}).ToList
答案 2 :(得分:0)
synchronized
这也起作用。 如果有人可以告诉我这个答案是与antoni发布的其他解决方案相比更好还是没有?