.NET 3.5 に同梱されている新しい動的データ サイト作成ツールを試しています。このツールは、LINQ データソースを使用して、参照用の .dmbl コンテキスト ファイルを使用してデータベースからデータを取得します。データ グリッドのカスタマイズに関心がありますが、複数のテーブルのデータを表示する必要があります。LINQ Datasource オブジェクトを使用してこれを行う方法を知っている人はいますか?
4 に答える
テーブルが外部キーで接続されている場合、linq によって自動的に結合されるため、両方のテーブルを簡単に参照できます (dbml を見て、テーブルを接続する矢印がある場合は簡単に確認できます)。追加できます。
これを行うには、次のようなものを使用できます。
<%# Bind("unit1.unit_name") %>
テーブルのどこで、「ユニット」には別のテーブルを参照する外部キーがあり、「ユニット名」のその「ユニットのプロパティ」をプルします
それが理にかなっていることを願っています。
(EDITは質問を誤解し、次の回答を修正しました)
LinqDataSource はビューを指すことができます。これにより、実際の要素で Join を表現できないという問題を克服できます。「方法: テーブルとビューにマップされた LINQ to SQL クラスを作成する (O/R デザイナー)」から:
O/R デザイナーは、1 対 1 のマッピング関係のみをサポートするため、単純なオブジェクト リレーショナル マッパーです。つまり、エンティティ クラスは、データベース テーブルまたはビューと 1:1 のマッピング関係のみを持つことができます。エンティティ クラスを複数のテーブルにマッピングするなどの複雑なマッピングはサポートされていません。ただし、複数の関連テーブルを結合するビューにエンティティ クラスをマップすることはできます。
より複雑なLinqを実行し、グリッドをObjectDataSourceにバインドする場合は、ObjectDataSourceを使用するのが最適です。ただし、問題が発生する可能性のある匿名タイプに注意する必要がありますが、何でも可能です...
データグリッドに複数のオブジェクト/データソースを配置することはできません。パーツ エンティティの公開されたプロパティを組み合わせた単一の ConceptObject を構築する必要があります。DB -> L2S エンティティ -> ConceptObject を使用してみてください。DB モデルがフィールドごとに ConceptObject と一致する場合は、非常に工夫されている必要があります。