0

私はMVCが初めてです。私はオンラインチュートリアルを通して自分の道を見つけようとしています.

と言われて、

テーブルA(a1、a2、a_b1)とテーブルB(b1、b2)があります

a_b1 は B.b1 からの外部キーです。

テンプレートを使用して、Visual Studio でリスト ビューを生成しました。<%=Html.Encode(item.a1) %> テーブル A の a1 フィールドとa2 フィールドにアクセスできます。 <%=Html.Encode(item.a2) %>

しかし、A.a_b1 値 (テーブル B への参照ではない) にアクセスしようとすると、テーブル B からのオブジェクトへの参照しか取得できません。これらのテーブルがあり、Visual Studio と Linq を使用してテーブル A と B のクラスを生成したため、作成されたオブジェクトに A.a1、A.a2 が表示されます。フィールドにABとA.BReferenceがあります

参照ではなく列の値にアクセスする方法が必要だと思います。手伝ってくれませんか?

結合を実行したくありません。値が必要なだけです。

できるだけ具体的に記載するように努めましたが、これが明確でない場合はお知らせください。

ありがとう

編集:

ADO.Net Entity Data Model を使用して、テーブルに関連付けられたオブジェクトを生成しました。

私のコントローラーには次のものがあります:

A sample1=repository.search(id);
string s1 = sample1.a1;
string s2 = sample1.a2;
string s3 = sample1.a_b1; (ERROR)

代わりに私は持っています

   sample1.B   (an object of type B)
and 
sample1.BReference  (object of type EntityReference<B>)
4

1 に答える 1

0

同じ問題に遭遇した人への回答:

Aのすべてのフィールド(a_b1を含む)を持つ新しいクラスA_textを定義しました。

選択では、私は使用しました:

var result = from pt in db.A
                     where pt.id== id
                     select new A_text
                     {
                         id= pt.id,
                         a1= pt.a1,
                         a2 = pt.a2,
                         a_b1= pt.a_b1.id
                     };
        return (result.FirstOrDefault());

と比較して効率がよくわかりません

 db.Search(id);

しかし、これまでのところ大丈夫のようです。

于 2012-09-13T20:44:42.233 に答える