私はMVC3を初めて使用しているので、これが基本的であれば謝罪しますが、うまくいかない可能性があります。間接的に関連するテーブルから別のフィールドを取得する
私は3つのテーブル、2つの外部キー(アーティストIDとラベルID)を持つ 'Albums'テーブルを含むビューモデルを持っています。
私は、ラベルテーブルのフィールドを表示するための 'ラベル'コントローラと詳細メソッドを持っています。私は、ラベルに関連するアルバムのコレクションから別個の「アーティスト」を取得しようとしています。
現時点では、アーティストの名前を取得できますが、アルバムごとに1つずつ生成されます。このシナリオのコードは以下のとおりです。
私はコレクションにアーティストを含めるなど、さまざまな機能を使い分けましたが、使い分けはしていません。このように実行可能かどうか、あるいはテーブル間の間接的な関係のために別のアプローチを使用する必要があるかどうかはわかりません。
ご協力いただきありがとうございます。
コントローラー:
public ActionResult Details(int id)
{
var viewModel = new LabelsDetailsVM();
viewModel.Lables = db.Labels
.Include(a => a.Albums)
.SingleOrDefault(x => x.LabelID == id);
return View(viewModel);
ビュー:ここ
@foreach (var artist in Model.Lables.Albums)
{
<tr>
<td>
@Html.DisplayFor(model => artist.Artist.ArtistName)
</td>
</tr>
}
ビューモデル
public class LabelsDetailsVM
{
public Label Lables { get; set; }
public IEnumerable<Album> Albums { get; set; }
public IEnumerable<Artist> Artists { get; set; }
}
}