我有两个表彼此有关系如何在实体框架(多个地方或联合)中执行此操作?
表A与表B有一对多的关系,所以这会在每个表中创建一个导航属性。
现在我需要检查表A(用户名)的值,我需要检查表B(ClubId)的值。
所以,在我的脑海它会是这样的
Join the tables together
Where A.userName == "bob" &&
where B.clubId == "Car"
// return the count.
但现在我知道有实体的东西,应该使加入较少见,所以我想知道如果我可以用加入再去做。
我想这
int count = Entity.TableA.where(a => a.userName == "bob" && a.TableB.where(i => i.ClubId == "Car")).Count();
所以这也不行,因为它不会返回正确的类型(第2位置)。这就是我的想法,我期望如何完成工作。
那么它应该如何看待?
P.S
我宁愿一个例子中的LINQ查询方法做像我上面那样。
啊。 哇。我不确定我的情况更好。 selectMany让我失望。那么如果我需要另一个过滤器会怎么样?我会添加另一个selectMany吗? 那么第一种方法的语法的作品我不知道它是否内部下降,并做第二件事。所有的查询将采用相同的执行时间。 什么是第二个SelectMany的。像什么是a => a.TableB,(a,b)=>)呢? – chobo2 2009-08-13 17:53:22
我已经在查询翻译中修复了该帖子。 第一个SelectMany本质上“扁平化”了你的嵌套集合,从所有A中返回所有B的序列。第二个SelectMany接受两个委托,一个“collectionSelector”从A和一个“resultSelector”中检索B的集合,以指定给定A和B的返回值。LINQ只是选择两个输入对象,用于查询的其余部分。 – dahlbyk 2009-08-13 18:05:04