【发布时间】:2015-11-09 13:35:53
【问题描述】:
我是 MVC 的新手。我正在做一个项目,在该项目中我创建了一个模型类和上下文类,如果我在普通视图中查看记录,它工作得很好。 但是,如果我尝试按“Series_Name”获取分组中的数据并将其绑定到同一模型类中,则会出现错误。这是我的代码
这里是模型类和 DBContextClass
[Table("tblvideo")]
public class TVSerial
{
[Key]
public Int64 Video_ID { get; set; }
public string Series_Name { get; set; }
public string Season_No { get; set; }
public string Episode_No { get; set; }
public string Episode_Name { get; set; }
public string Time_Duration { get; set; }
public string File_Url_480p { get; set; }
public string File_Url_720p { get; set; }
public string Description { get; set; }
public bool Is_Active { get; set; }
public string Image_Url_Small { get; set; }
public string Image_Url_Big { get; set; }
}
public class TvSerialContext : DbContext
{
public DbSet<TVSerial> TvSerials { get; set; }
}
这是控制器类:
public class TvSerialController : Controller
{
public ActionResult ListAllTvSerial()
{
try
{
TvSerialContext tvContext = new TvSerialContext();
List<TVSerial> tv = tvContext.TvSerials.ToList();
return View(tv);
}
catch (Exception ex)
{
return Content(ex.Message);
}
}
}
以上代码按预期工作,但如果我这样做:
public ActionResult ListAllSeason(string serial)
{
try
{
TvSerialContext tvContext = new TvSerialContext();
List<TVSerial> tv = tvContext.TvSerials.Where(tvs => tvs.Series_Name == serial).Distinct().ToList();
return View(tv);
}
catch (Exception ex)
{
return Content(ex.Message);
}
}
它返回所有行,我只想从每个 series_name 和自定义字段“Series_Name,Season_No,Image_Url_Big”中获取单行 我不知道如何做到这一点。 得到结果:
【问题讨论】:
-
什么意思返回所有行?它只会返回
Series_Name == serial所在的行。你有自定义的比较器吗? (如果不是.Distinct()子句不会做任何事情。最好的猜测是你想要一个.GroupBy()但从你的问题中不清楚你想要输出是什么。 -
是的,实际上我想要 groupBy Series_Name 并且只想要 3 个字段,但我不知道如何实现这一点。
-
创建一个仅包含 3 个您想要的属性的视图模型,并使用
.GroupBy()将 vales 投影到您的视图模型中。但是你打电话给你的方法ListAllSeason暗示你想按季节分组? -
是的,当我传递参数 ex 时是正确的:- Series_Name ="Breaking Bad" 它应该返回 All season_No 像 1,2,3,4,5。所以正如你所说,我需要另一个模型来处理 3 个属性,然后还需要另一个 DbContext 吗?
-
不,只是您将 3 个属性值投影到的视图模型。我建议您编辑您的问题以显示您想要返回的数据样本,以便清楚您想要做什么以及如何对数据进行分组。
标签: asp.net-mvc-4