経由EFテーブルに結合したときにこんにちは、私は私がBindingSource1にアクセスしたときは、SQLオーバーライド
sql = "select a.*, b.col3 from table1 a inner join table2 b on a.col2 = b.col1";
context.Table1.SqlQuery(sql).ToList();
BindingSource1.DataSource = context.Table1.Local.ToBindingList();
は、しかし、それはTABLE1から列のみを持っているとしてバインドなっているのBindingSourceを持ってバインディングソースに追加の列を追加します。 table2からcol3を追加する簡単な方法があるかどうか疑問に思うので、そのフォームに多くのロジックを書き直す必要はありません。私はlinqでefに逃げようとしましたが、SQLオーバーライドを使用していたときと同じ結果セットが得られません(実際のクエリは非常に複雑です)。私が何かをする必要があるたびにクエリのオーバーライドを導入したくないこの。
Table1に子ICollectionがある場合、どのように新しいクラスに入力しますか? –
AlexanderM
このケースではうまくいくとは思っていませんし、少なくとも私が知っているものではありません。これは、EFマッピングがあなたに与えてくれるものの一つであり、本当に強力ですが、このバインディングでは表3のものが必要ですか?もしあなたがそうするなら、私が上で述べたことの代わりにできることは、Table3のようにTable2へのマッピングを行い、Table2オブジェクトからcol3を得ることです。これを行う場合は、EFが照会するためのIncludeメソッドを使用して、データベースに多くの呼び出しを行わないようにすることをお勧めします。 – SpaceOgre
Table2からデータを取得するためにTable1にバインドされているBindingSourceに列をバインドする方法、またはそのデータをGridviewにどのように取得するのですか?そのバインディングソースは実際にはグリッドビューをバインドしており、私は子テーブルからデータを戻す必要があります。これはwinformsアプリケーションであり、edmx EFを使用しています。私は過去5年間edmxで働いていませんでした(2013年以降はEFを使用していたのはコードが最初です)。winformsは決してありませんでした。 – AlexanderM