EF,Linq联合查询,一对多联合

问题描述

学生表,班级表,我要班级下面学生A表,字段:AID,CLASSB表,字段:BID,BNAME,AIDA表数据1班级12班级2B表数据1学生112学生213学生324学生42我想得到CLASSNAME班级1学生1,学生2班级2学生3,学生4这样怎么联合

解决方案

解决方案二:
namespaceConsoleApplication1{publicclassA{publicintAID{get;set;}publicstringClass{get;set;}}publicclassB{publicintBID{get;set;}publicstringBName{get;set;}publicintAID{get;set;}}classProgram{staticvoidMain(string[]args){List<A>A=newList<A>(){newA(){AID=1,Class="班级1"},newA(){AID=2,Class="班级2"},};List<B>B=newList<B>(){newB(){BID=1,BName="学生1",AID=1},newB(){BID=2,BName="学生2",AID=1},newB(){BID=3,BName="学生3",AID=2},newB(){BID=4,BName="学生4",AID=2},};varresult=B.GroupBy(x=>x.AID).Select(x=>new{Key=x.Key,Value=string.Join(",",B.Where(y=>y.AID==x.Key).Select(y=>y.BName))});foreach(variteminresult){Console.WriteLine(item);}}}}

解决方案三:
然后关联一下就出来了。varlastResult=frompinAfromqinB.GroupBy(x=>x.AID).Select(x=>new{Key=x.Key,Value=string.Join(",",B.Where(y=>y.AID==x.Key).Select(y=>y.BName))})wherep.AID==q.Keyselectnew{CLASS=p.Class,Name=q.Value,};

解决方案四:
引用2楼guwei4037的回复:

然后关联一下就出来了。varlastResult=frompinAfromqinB.GroupBy(x=>x.AID).Select(x=>new{Key=x.Key,Value=string.Join(",",B.Where(y=>y.AID==x.Key).Select(y=>y.BName))})wherep.AID==q.Keyselectnew{CLASS=p.Class,Name=q.Value,};

LINQtoEntities不识别方法“System.StringJoin(System.String,System.Collections.Generic.IEnumerable`1[System.String])”,因此该方法无法转换为存储表达式。
解决方案五:
控制台项目,.netframework4.0
解决方案六:
引用4楼guwei4037的回复:

控制台项目,.netframework4.0

LINQtoEntities里面不能用string.join吗
解决方案七:

解决方案八:
引用6楼guwei4037的回复:这个是Tostring报错的,我知道怎么解决

时间: 2024-10-27 08:10:23

EF,Linq联合查询,一对多联合的相关文章

Access 2007使用联合查询合并多个选择查询的结果

对于多个相似的选择查询,当您希望将它们返回的所有数据一起作为一个合并的集合查看时,便可以使用联合查询 本文将向您介绍如何根据两个或多个现有的选择查询创建联合查询,同时说明如何使用结构化查询语言 (SQL) 编写联合查询 为完成本文中的示例,您应该对如何创建和运行选择查询有基本的了解.有关如何创建选择查询的详细信息,请参阅请参阅部分中的链接 本文内容 联合查询基础知识联合查询有哪些功能? 联合查询可合并多个相似的选择查询的结果集 例如,假设您有两个表,一个用于存储有关客户的信息,另一个用于存储有关

mssql中sql各种联合查询

在sql server中,我们经常能用到连接,今天总结一下连接的基础知识.连接的分类: 交叉连接CROSS JOIN 内连接INNER JOIN 外连接{左外连接LEFT [OUTER] JOIN :右外连接RIGHT [OUTER] JOIN:全外连接full [outer] join} 自连接 以下通过例子来了解各个连接的异同点: 有两张表Teacher表和Course表: 交叉连接: 1.如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积:

对MySQL几种联合查询的通俗解释_Mysql

表a aid adate 1 a1 2 a2 3 a3 表b bid bdate 1 b1 2 b2 4 b4 两个表a.b相连接,要取出id相同的字段. select * from a inner join b on a.aid = b.bid 这是仅取出匹配的数据. 此时的取出的是: 1 a1 b1 2 a2 b2 那么left join 指: select * from a left join b on a.aid = b.bid 首先取出a表中所有数据,然后再加上与a.b匹配的的数据.

linq联合查询返回那种方式效率快

问题描述 第一种:varquery=fromtintts.table1.AsNoTracking()joinnintts.table2ont.Midequalsn.Midwheret.id==idorderbyt.AddDatedescendingselectnewObjDataItem{Tcode=t.Tcode,OCode=t.OCode,AddDate=t.AddDate,UpdateDate=t.UpdateDate,PayType=n.PayType,Status=n.Status};

asp.net中同时查询两个数据库表进行联合查询

最近被问道了一个问题,就是如何对两个数据库里面的表进行联合查询. 后来我就用了最笨的方法实现了.希望看到的朋友能给个好的解决方法,只用一个连接字符串.最好是给个详细的教程.   首先有这样的两个数据库,每个数据库中有两个表. 表里面的数据也很简单,就是学生表和专业表,用专业号关联. 下面就在Winfrom的DataGridView上绑定数据,显示学生的编号.姓名.年龄和专业.效果如下: 由于对数据的操作我用到了linq to dataset 所以项目的.net 版本为3.5以上. 下面就是绑定数

Yii多表联合查询操作详解_php实例

本文针对Yii多表联查进行汇总描述,供大家参考,具体内容如下 1.多表联查实现方法 有两种方式一种使用DAO写SQL语句实现,这种实现理解起来相对轻松,只要保证SQL语句不写错就行了.缺点也很明显,比较零散,而且不符合YII的推荐框架,最重要的缺点在于容易写错. 还有一种便是下面要说的使用YII自带的CActiveRecord实现多表联查 2. 整体框架 我们需要找到一个用户的好友关系,用户的信息放在用户表中,用户之间的关系放在关系表中,而关系的内容则放在关系类型表中.明显的我们只需要以关系表为

MySQL 第五篇:系统函数和联合查询

我把MySQL的内容整理成9篇博客,学完这9篇博客虽不能说能成为大神,但是应付一般中小企业的开发已经足够了,有疑问或建议的欢迎留言讨论. 一.系统函数 一.概念 函数是SQL里的关键字,用于对字段里的数据进行操作.函数是一个命令,通常与字段名称或者是表达式联合使用,处理输入的数据并产生结果 二.控制函数 1.case 语法:case 值 when 比较的值 then 返回的值 when 比较的值 THEN-. END SELECT s_name, CASE sex WHEN 0 THEN '女性

基于IBM和FileNet内容管理产品的联合查询服务

在大型的现代化企业里,信息分布在不同的数据存储系统(例如 IBM Content Manager, FileNet P8, EMC Documentum 等),而不同的存储库又有其独特的实现方式,这就给企业整 合.搜索这些数据上带来了极大困难.IBM Content Integrator(ICI)提供了一种基于企业内 容管理的联合查询服务,在该服务的帮助下,企业能更快捷地开发出基于分散数据的企业应用 ,并能快速地搜索和整合数据. 跨库查询的需求和基于 ICI 的解决方案 在大型企业里,因业务需求

数据库组件 Hxj.Data (十四) (联合查询)

联合查询在前面的例子中已经出现过,只不过没有细说. 先来个例子吧 DbSession.Default.From<Customers>() .InnerJoin<Orders>(Customers._.CustomerID == Orders._.CustomerID) .ToDataTable(); 生成的sql Text: SELECT * FROM [Customers] INNER JOIN [Orders] ON ([Customers].[CustomerID] = [O