Linq to Entity-リストテンプレートMVCページにあるときにモデル内の別のテーブルに移動できますか
-
08-07-2019 - |
質問
プロジェクトテンプレートソリューション(Dynamic Data Web Application)で、モデルを作成しましたが、すべて正常です。 -テーブルのリストを取得し、編集などを選択します。
しかし、データベースには、不正なキーのみを含むリンクテーブルがあるため、リストテンプレートにはfk値のみが表示されます
プライマリテーブルの行のリストを、fkに基づいて別のテーブルの検査と組み合わせることはできますか?
SQLの結合に似ていますか?しかし、Linq2EntityとMetaModelを使用していますか?
下はList.aspx.csです-これは標準グリッドをentitydatasourceにバインドしているように見えますが、これはMVCのルートに従って現在のテーブルにバインドされているようです。
しかし、ご覧のとおり、モデルを介してPerson、Role、およびLinkテーブルを照会し、他のフィールドを取得して、これが役立つようにする必要があります。
PSは、可能であれば、これをLINQ2Entityで保持しようとします-grokを試みます
私がやりたいことは、値を取得して取得するために新しいSQLクエリをスピンオフすることです。しかし、これはこのイディオムではありません。
解決
dataContextを介してmetaModelを参照できます
MetaModel refMetaModel = MetaModel.GetModel(typeof(yourdataContextName));
MetaTable refMetaModel;
refMetaModel = refMetaModel.GetTable("yourTableName");
PSはあなたのコードを見て、これはsceanrioで動作します。モデルからテーブルを取得し、モデル内の各テーブルに返されたデータを検査できます
他のヒント
Linq to Entitiesモデルからこれを使用するUselful-
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)