MVC +EF 如何实现多对多关系的查询

小白1234986 2017-08-21 06:00:22
两个表,表Film 电影信息 。表FilmType 电影类型 两个表是多对多关系 所以又建了一个新表 Film_FilmType
把多对多关系换成了一对多关系 现在在MVC中查出来 SQL语句如下


select Typename from FilmType where typeid
in(
select TypeID from Film_FilmType where filmid=
(
select filmID from Film where FilmName='战狼1'
)
)
怎么在MVC中用Linq 写出来
...全文
1178 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小白1234986 2017-08-23
  • 打赏
  • 举报
回复
多谢各位老大 已经解决了 想了半天 最后自己慢慢摸索写了一个 ViewData["typename"] = db.Film.Where(t => t.FilmID == id).SelectMany(t => t.FilmType).Select(t => t.TypeName).ToList(); 结果出来了 多谢1楼 看了半天 有点思路就写出来了
小白1234986 2017-08-23
  • 打赏
  • 举报
回复
EF框架里面没有这个Film_FilmType表啊 ,才开始学Linq 菜鸟一枚 ,各位大佬多多谅解
小白1234986 2017-08-22
  • 打赏
  • 举报
回复
引用 3 楼 hanjun0612 的回复:
[quote=引用 2 楼 qq_36441081 的回复:] 初学者有些不懂.....
这代表主外键关系,并且virtual可以支持延迟加载。 [/quote] 怎么解决我的问题?
正怒月神 2017-08-22
  • 打赏
  • 举报
回复
引用 2 楼 qq_36441081 的回复:
初学者有些不懂.....
这代表主外键关系,并且virtual可以支持延迟加载。
小白1234986 2017-08-22
  • 打赏
  • 举报
回复
引用 1 楼 q107770540 的回复:
var query = from ft in db.FilmType
             let tmp = db.Film.Where(f => f.FileName == "战狼1").Select(f => f.filmID)
             let fft = db.Film_FilmType.Where(ff => tmp.Contains(ff.fileid)).Select(ff => ff.TypeID)
             where fft.Contains(ft.TypeID) 
             select ft.Typename;
在EF框架里面Film_FilmType这个表没有, 两个表是直接用了两个泛型集合联系起来的 比如在 Film表里面 EF框架自己生成了一个public virtual ICollection<FilmType> FilmType { get; set; } 初学者有些不懂.....
peng2739956 2017-08-22
  • 打赏
  • 举报
回复
得 答案已经贴出来了,但是楼主还是不明白。
正怒月神 2017-08-22
  • 打赏
  • 举报
回复
引用 4 楼 qq_36441081 的回复:
怎么解决我的问题?
1楼已经给你解决方案了啊,2楼你问 public virtual ICollection<FilmType> FilmType { get; set; } 不懂, 我这里告诉你了,还要解决什么?
q107770540 2017-08-22
  • 打赏
  • 举报
回复
var query = from ft in db.FilmType
             let tmp = db.Film.Where(f => f.FileName == "战狼1").Select(f => f.filmID)
             let fft = db.Film_FilmType.Where(ff => tmp.Contains(ff.fileid)).Select(ff => ff.TypeID)
             where fft.Contains(ft.TypeID) 
             select ft.Typename;
C# + SQL Server 本系统包括两类用户:学生、管理员。管理员可以通过系统来添加管理员信息、修改管理员信息、添加学生信息、修改学生信息;开设课程、查询课程、录入成绩、统计成绩 管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等。学校管理系统帮助提高学校的组织效率和信息管理水平。 人力资源管理系统(HRM): 用于处理组织内的人事信息,包括员工招聘、培训记录、薪资管理、绩效评估等。HRM系统有助于企业更有效地管理人力资源,提高员工的工作效率和满意度。 库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(CRM): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会跟踪等。CRM系统有助于企业更好地理解客户需求,提高客户满意度和保留率。 医院管理系统: 用于管理医院或医疗机构的患者信息、医生排班、药品库存等。这种系统可以提高医疗服务的质量和效率。 财务管理系统: 用于记录和管理组织的财务信息,包括会计凭证、财务报表、预算管理等。财务管理系统
C# + SQL Server 本系统包括两类用户:学生、管理员。管理员可以通过系统来添加管理员信息、修改管理员信息、添加学生信息、修改学生信息;开设课程、查询课程、录入成绩、统计成绩 管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等。学校管理系统帮助提高学校的组织效率和信息管理水平。 人力资源管理系统(HRM): 用于处理组织内的人事信息,包括员工招聘、培训记录、薪资管理、绩效评估等。HRM系统有助于企业更有效地管理人力资源,提高员工的工作效率和满意度。 库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(CRM): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会跟踪等。CRM系统有助于企业更好地理解客户需求,提高客户满意度和保留率。 医院管理系统: 用于管理医院或医疗机构的患者信息、医生排班、药品库存等。这种系统可以提高医疗服务的质量和效率。 财务管理系统: 用于记录和管理组织的财务信息,包括会计凭证、财务报表、预算管理等。财务管理系统

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧