【发布时间】:2015-03-30 21:45:03
【问题描述】:
我有两张桌子:
public class Game
{
public int GameId { get; set; }
public int FirstTeamId { get; set; }
public int GoalsFirstTeam { get; set; }
public int GoalsSecondTeam { get; set; }
public int SecondTeamId { get; set; }
public Team Team { get; set; }
}
public class Team
{
public int Id { get; set; }
public string Name { get; set; }
public IEnumerable<Game> Games { get; set; }
}
然后,使用:
OperationDataContext dt = new OperationDataContext();
public ActionResult Scores()
{
List<Games> model = dt.Games.ToList();
var query = (from g in dt.Games
join t1 in dt.Teams on g.FirstTeamId equals t1.Id
join t2 in dt.Teams on g.SecondTeamId equals t2.Id
select new Games(){g.GameId,
t1.Name,
g.GoalsFirstTeam,
g.GoalsSecondTeam,
t2.Name
}
).ToList();
model = query;
return View(model);
我想要在 View 中最终实现的目标是:
比赛 FirstTeam 进球 进球 SecondTeam
1 罗马 1 3 曼彻斯特
2 国际米兰 0 0 米兰
有人可以帮我解决这个问题,因为我收到了错误通知吗?
PS。当我尝试这个时:
OperationDataContext dt = new OperationDataContext();
public ActionResult Scores()
{
var games = dt.Games.ToList();
return View(games);
}
结果是:
比赛 FirstTeam 进球 进球 SecondTeam
1 罗马 1 3 罗马
2 国际米兰 0 0 国际米兰
【问题讨论】:
-
错误通知到底是什么?
-
Class
Game不适合容纳您执行的 linq 查询产生的结果。 -
是的,我看到了这个错误通知:无法使用集合初始化程序初始化“Tournament20.Models.Games”,因为它没有实现“System.Collections.IEnumerable”。简单地说,我不明白如何解决它。
-
这是纯 linq(linq 到对象)吗?还是实体框架?如果它的实体框架,那么你应该只提供适当的导航属性。
标签: asp.net-mvc linq select inner-join