0

プロジェクト テンプレート ソリューション (Dynamic Data Web Application) の外で、モデルを作成しましたが、すべて問題ありません。- テーブルのリストを取得し、選択編集など。

しかし、私のデータベースには、forgien キーのみを含むリンク テーブルがあるため、リスト テンプレートには fk 値が表示されるだけです。

テーブルの図

プライマリ テーブルの行のリストを、fk に基づく別のテーブルの検査と組み合わせる方法はありますか?

SQL の結合に似ていますか? しかし、Linq2Entity と MetaModel を使用していますか?

以下は List.aspx.cs です。これは、標準グリッドをエンティティ データ ソースにバインドしているように見えますが、これは MVC のルートに従って現在のテーブルにバインドされています。

しかし、ご覧のとおり、モデルを介して Person、Role、および Link テーブルにクエリを実行し、他のフィールドを取得して、これが役立つようにする必要があります。 vスタジオ

PSは、可能であればこれをLINQ2Entityに保持しようとしています-grokしようとしています

私がやりたいと思う自然なことは、新しい SQL クエリをスピンオフして値を取得することです。しかし、これはこのイディオムにはありません。

4

2 に答える 2

1

dataContextを介してmetaModelを参照できます

MetaModel refMetaModel = MetaModel.GetModel(typeof(yourdataContextName));
MetaTable refMetaModel;
refMetaModel =  refMetaModel.GetTable("yourTableName");

PSはあなたのコードを調べ、これはあなたのシーンで機能します。モデルからテーブルを取得し、モデル内の各テーブルに対して返されたデータを調べることができます

MetaModelに関するMSDNの記事

于 2008-11-20T10:48:26.923 に答える
0

Linqからエンティティモデルまでこれを使用するのにも便利です-

dataContextを使用する-最も有用な実際のデータを取得できます。

metaModelを使用すると、基になるddlタイプ情報を提供するdataModelにアクセスできます。

//use the datacontext to get the underlying data
      using (brrdbEntities brr = new brr_dbEntities())
      {
          ObjectQuery<person> people = brr.person;
          IQueryable<string> names = from p in people select p.person_name;
          foreach (var name    in names)
于 2008-11-20T13:13:08.720 に答える