【发布时间】:2016-03-27 01:00:58
【问题描述】:
我正在使用 ASP.net MVC,C# 我有两个模型类,Artist 和 Album,我创建了一个名为 Operations 的新单独类来将方法放在那里(我已经阅读了 MVC 实现的一个好习惯方法在单独的层中,而不是在 Controller 类或 Model 类中)。我想要一个方法来返回两个模型的信息,我已经创建了数据库,其中包含由 ArtistID 加入的两个表 Artist 和 Albums。我知道查询必须如何工作,但是应该返回什么方法呢?你知道开发这个的正确方法是什么吗?考虑到艺术家和专辑的混合,控制器将如何调用此方法并创建一个视图?我应该为此专门创建一个 ViewModel 吗?我该怎么做?
模型类:
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; }
}
Operations 类:我调用了 AlbumsByArtist 方法,它无法返回 Abum 列表,因为它返回 Artist 和 Album 之间的连接,应该返回什么?如何使用 Controller 将结果发送到 View 并在 View 中显示这些结果?
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;
}
}
【问题讨论】:
标签: c# sql asp.net-mvc entity-framework