我下面的表结构Linq-to-sql加入/在哪里?
用户 ID
类型 ID isBool
UsersTypes 用户ID 类型
我要选择基于ID和isBool所有UserTypes 。
我尝试这个查询
var q = from usertype in usertypes
from type in types
where type.isBool == false
where userstypes.user == id
select usertype;
但如预期并没有工作。我的问题是:
- 为什么?
- 在使用语法上的连接有没有什么区别vs哪里,哪里vs哪里cond1 & & cond2?我的理解是查询优化器将优化。
- 使用哪里cond1 == var1 & & cond2 == var2有和没有括号有什么区别吗?这似乎有点奇怪,有可能没有括号来构建它
- 在这种情况下我需要什么类型的查询?我可以看到,我可以做一个子查询或使用一个组,但不是100%确定是否需要。一个例子可能会有所帮助。我想在这种情况下可能需要子查询。
谢谢。但是如果没有显式连接,可以做到这一点吗?你能否提供使用selectmany的例子呢? – 2010-06-03 19:13:41
“LINQ-to-SQL将生成内部连接而不是哈希连接”咦?假。 Linq to sql不会生成散列连接...它会生成sql。查询优化器根据统计信息生成散列连接,而无需输入。 – 2010-06-03 19:22:30
@大卫B - 对不起......坏的术语。交叉连接如何?相当于从usertype中选择u作为u,键入t' – 2010-06-03 19:43:05