寻找一种创建 Linq-to-SQL Master-Detail WinForms DataGridViews 的方法,其中 Linq 查询的详细信息部分是自定义的。可以做到这一点:
DataClasses1DataContext db = new DataClasses1DataContext(".\\SQLExpress");
var myQuery = from o in db.Orders select o;
dataGridView1.DataSource = new BindingSource()
{
DataSource = myQuery
};
dataGridView2.DataSource = new BindingSource()
{
DataSource = dataGridView1.DataSource,
DataMember = "OrderDetails"
};
但我想让细节部分在我的精确控制之下,比如
var myQuery = from o in db.Orders join od in db.OrderDetails
on o.ID equals od.OrderID into MyOwnSubQuery select o;
并将其用于第二个网格:
dataGridView2.DataSource = new BindingSource()
{
DataSource = dataGridView1.DataSource,
DataMember = "MyOwnSubQuery" // not working...
};
我想要它的真正原因有点复杂(我希望 Detail 部分实际上是一些未预定义的连接),但我希望上面传达了这个想法。
我可以只将 Detail 部分作为来自预定义关系的普通子表,还是可以使用 Detail 部分做更复杂的事情?有没有其他人觉得这是有限的(如果第一个例子是我们能做的最好的)?谢谢!