问题描述
学生表,班级表,我要班级下面学生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报错的,我知道怎么解决