0

私は2つのテーブルを持っています:

製品: 製品
ID、製品名

化合物:

化合物 ID、コンポーネント ID、数量

次のようにバインド:

1 製品。ProductID --> 多くの化合物。化合物ID

1 製品。ProductID --> 多くの化合物。コンポーネント ID

Products アイテムは、化合物、コンポーネント、またはその両方です。

ビューが化合物ごとにそのコンポーネント名と量を返す必要があります。

MyController メソッド:

public ActionResult CompoundProduct()
    {
        var Compounds = db.Compounds.Include(s => s.Products);
        return View(Compounds.ToList());
    }

MyView コード: @model IEnumerable

<table>
@foreach (var item in Model) 
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.CompoundID)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ComponentID)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Products.ProductName)
        </td>
    </tr>
}
</table>

この方法では、下の画像に示すように、化合物ごとに異なるコンポーネント名ではなく、繰り返される化合物名のリストを取得します。 ここに画像の説明を入力

何か助けてください?

4

1 に答える 1

1

データベースからモデルを作成したとき、EFは2つのナビゲーションプロパティを作成し、2つの外部キーとに関連しているProducts必要があります。に属するものではなく、に属する間違ったナビゲーションプロパティを使用している可能性があります。で使用しようとする代わりに...Products1CompoundIDComponentIDCompoundIDComponentIDProductsProducts1Include

var Compounds = db.Compounds.Include(s => s.Products1);

...そしてビューで:

@Html.DisplayFor(modelItem => item.Products1.ProductName)
于 2013-03-12T17:56:34.737 に答える