【发布时间】:2016-03-15 11:47:06
【问题描述】:
我是一个实体框架用户,将 Dapper 作为替代方案。在 Entity Framework 中,我可以做到这一点,它将填充我的 Team 对象和每个对象中的玩家集合属性以及每个玩家内部的团队属性。
var players = context.Teams
.Include(x => x.Players)
.AsNoTracking()
.Where(x => x.SportId == sportId).ToList();
我发现这是 Dapper,但它似乎只是返回一个没有团队数据的平面球员对象。有没有办法让 Dapper 做 EF 做的事情,如果可以,怎么做?
var players = conn.Query<PlayerDTO, TeamDTO, PlayerDTO>("SELECT p.Id,
p.FirstName, p.LastName, p.DateOfBirth, p.TeamId, t.Id as TeamId, t.Name,
t.SportId FROM Team t "+ "INNER JOIN Player p ON t.Id = p.TeamId WHERE
t.SportId = @ID", (player, team) => { return player; }, splitOn: "TeamId",
param: new { ID = sportId });
【问题讨论】: