现状:多对多多主键?
TableParent 2个primaryKeys,ParentKey1和ParentKey2 TableChild 1周的PrimaryKey,ChildKey TableConnector与列ParentKey1,ParentKey2和ChildKey
这就是我想我应该用我的LINQ查询去。注意我正在读取属于父项的所有子项,所以我将它作为参数的键。
var query = from conn in db.TableConnector
join child in db.TableChild on conn.ChildKey equals child.childKey
join par in db.TableParent on conn.ParentKey1 equals par.parentkey1 into connGroup
from co in connGroup
where co.ParentKey1 == Parameter1
Select child;
那么我认为这个工作到一个点,比方说,如果父母只有一个键,我是对吗?
我想我必须加入更多的第二组,但我目前输了。
是的,我的意思是复合主键,因为有两列定义主键。正如我所说的,SQL不是我的强项。我要检查这个解决方案。我确定它的工作原理,但我也很好奇如何使用同样类型的查询来完成它,因为这可以帮助我处理SQL本身。 – 2010-10-14 11:26:36
对不起,我没有真正进入'查询'语法,我觉得它非常不直观,我有点疲惫,准确地翻译它。但关键是你不必手动加入表格 - 这就是LINQ-to-SQL代码为你做的。 – 2010-10-14 11:35:37
尝试你以前的解决方案我收到一个错误“类型参数不能从使用推断”。 SelectMany不会返回TableConnector对象而不是TableChild对象吗?只需要选择而不是selectMany就没有错误。也可以以某种方式包装在一个物体中?像旧的查询类型“select new wrapper(child);” – 2010-10-14 12:08:49