0

Linq-to-SQLマスター-詳細WinFormsDataGridViewsを作成する方法を探しています。ここで、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;

2番目のグリッドに使用します。

dataGridView2.DataSource = new BindingSource()
{
  DataSource = dataGridView1.DataSource,
  DataMember = "MyOwnSubQuery" // not working...
};

私が望む本当の理由はもう少し複雑です(実際には詳細部分を事前定義されていない結合にしたいのですが)が、上記がアイデアを伝えてくれることを願っています。

事前定義された関係から出てくるプレーンなサブテーブルとして詳細部分のみを持つことはできますか、それとも詳細部分を使用してより複雑なことを行うことができますか?他の誰かがこれが一種の制限されていると感じていますか(最初の例が私たちにできる最善の場合)?ありがとう!

4

1 に答える 1

0

当てずっぽう:

public class MyDataSource
{
    DataClasses1DataContext db = new DataClasses1DataContext(".\\SQLExpress");

    public IQueryable<Order> AllOrders
    {
        get { return db.Orders; }
    }

    public IQueryable<OrderDetails> OrderDetails
    {
        get
        {
            // define your custom query here
        }
    }
}

MyDataSource dataSource = new MyDataSource();
dataGridView2.DataSource = new BindingSource()
{
    DataSource = dataSource.AllOrders;
    DataMember = dataSource.OrderDetails;
};
于 2010-06-14T13:59:27.557 に答える