为了简化我目前的情况,我可以说我有2个表(遗产因此无法触及架构以便更好地与Linq一起使用)
node
Columns: key_field1, key_field2, [lots of other fields]
node_children
Columns: parent_key_field1, parent_key_field2, child_key_field1, child_key_field2
node_children类似于Rails中的has_and_belongs_to_many连接表...除了两个id都引用同一个表。
理想情况下,我想要一个具有Property Children的Node Class,它返回正确的List? 结果应该相当于
select * from node
join node_children
on node.key_field1 = node_children.child_key_field1 and node.key_field2 = node_children.child_key_field2
where node_children.parent_key_field1 = @paramX and node_children.parent_key_field2 = @paramY
在Linq to Sql中建模的最佳方法是什么?
答案 0 :(得分:1)
这就是我提出的(也是有效的!)
打开ORM生成的Node类MyDatabase.cs
partial class Node
{
public IEnumerable<Node> Children
{
get
{
MyDatabaseDataContext dc = new MyDatabaseDataContext();
return from link in this.ChildLinks
join node in dc.Nodes on new { Site = link.child_key_field1, ID = link.child_key_field2 } equals new { Site = node.key_field1, ID = node.key_field2 }
select node;
}
}
}
其中一天,我将完成LINQ入门系列文章:)