我想编写一个 linq 查询来检索由多对多关系生成的复合表的所有数据。这是我在控制器中的查询 public ActionResult Index() { var act = (from i in _context.act from j in _context.mvz where i.Id == j.Id select i).ToList(); var mvz = _context.mvz.ToList(); var vm = new AAMMViewModel() { actz = act mvz = mvz }; if (vm == null) { return Content("No items found in database"); } return View(vm); }这是视图模型 public class AAMMViewModel{ public List<Actors> actz { get; set; } public List<Movies> mvz { get; set; } public AAMMViewModel() { actz = new List<Actors>(); mvz = new List<Movies>(); }}它没有给出想要的结果,我知道我的 Linq 查询的逻辑有问题。如果有人有这方面的专业知识,请指导我。
2 回答

繁花不似锦
TA贡献1851条经验 获得超4个赞
你可以这样做:
var act =
(from i in _context.act
where i.Id.SelectMany(id => _context.mvz.Contains(id.Id))
select i).ToList();

森林海
TA贡献2011条经验 获得超2个赞
你确定演员和电影的ID是一样的吗?如果是,请进行连接并使用正确的属性名称。您在 linq 中使用 act 代替 actz
public class AAMMViewModel
{
public List<Actors> actz { get; set; }
public List<Movies> mvz { get; set; }
public AAMMViewModel()
{
actz = new List<Actors>();
mvz = new List<Movies>();
}
}
var act = (from i in _context.actz
join j in _context.mvz ON i.Id == j.Id
select i).ToList();
- 2 回答
- 0 关注
- 161 浏览
添加回答
举报
0/150
提交
取消