私はASP.net MVCで作業しています。C#私は2つのモデルクラス、アーティストとアルバムを持っています。私はそこにメソッドを入れるためにOperationsという新しいクラスを作成しました。コントローラクラスやモデルクラスではなく、別のレイヤーにメソッドを実装するためのMVCに関する良い習慣)。私は両方のモデルの情報を返すメソッドが必要なので、私はすでにArtistIDで結合された2つのテーブルArtistとAlbumsを持つデータベースを作成しました。私はクエリがどのように動作する必要があるのか知っていますが、そのメソッドを返す必要がありますか?これを開発する正しい方法がどれか分かりますか?コントローラーがこのメソッドを呼び出して、それがアーティストとアルバムのミックスを考慮してビューを作成する方法を教えてください。このためにViewModelを具体的に作成する必要がありますか?どのように私はこれを行うことができますか?ビューでjoin linqクエリを表示
モデル・クラス:
public class Artist
{
public int ArtistID { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public virtual List<Album> Albums { get; set; }
}
public class Album
{
public int AlbumID { get; set; }
public string AlbumName { get; set; }
public virtual Artist Artist { get; set; }
public int ArtistID { get; set; }
}
オペレーションクラス:それは、何がそれを返す必要があり、アーティストとアルバムの間の結合を返すので、それがAbumリストを返す作業won`t AlbumsByArtist私は、メソッドを呼び出しましたか?コントローラを使用して結果をビューに送信し、これらの結果をビューでどのように表示できますか?
public class Operations
{
MusicStoreDbContext db = new MusicStoreDbContext();
public List<Album> AlbumsByArtist()
{
var temp = (from ar in db.Artists
join al in db.Albums on ar.ArtistID equals al.ArtistID
select new { al.AlbumName, ar.Name, ar.LastName });
return temp;
}
}