如何用linq将不同的字段连接成一个字段? C#.NET LINQ

时间:2016-07-12 21:11:27

标签: c# sql asp.net linq

我有两张相关的表格。例如

学生

 ----------------------
| Id        | Name     |
 ----------------------
| 1         | Federic  |
 ----------------------
| 2        |  Sancho   |
 ----------------------

教师

----------------------------------
| Id        | Name  | Student_id  |
----------------------------------
| 1         | Jose  | 1           |
----------------------------------
| 2        | Carlos | 1           |
----------------------------------
| 3        | Eduardo| 2           |
----------------------------------

结果应为

学生

----------------------------------
| Id        | Name  | Teachers    |
----------------------------------
| 1     | Federic | Jose,carlos   |
----------------------------------
| 2        | Sancho| Eduardo       |
----------------------------------

我需要在Linq中进行

我和其他桌子一起工作,但他们的工作方式相同

var Technology = (from  tTechnology in Context.Technology

                                                 join tUsers in Context.Users on tTechnology.EnableBy equals tUsers.UserId into collection
                                                 from subCase in collection.DefaultIfEmpty()
                                                 join tUsers2 in Context.Users on tTechnology.LastChangeBy equals tUsers2.UserId into collection2
                                                 from subCase2 in collection2.DefaultIfEmpty()
                                                 join tUsers3 in Context.Users on tTechnology.DisableBy equals tUsers3.UserId into collection3
                                                 from subCase3 in collection3.DefaultIfEmpty()
                                                 join tResolution in Context.Resolution on tTechnology.TechnologyId equals tResolution.TechnologyId 
                                                  into collection4
                                                  from subCase4 in collection4.DefaultIfEmpty()

                                                   where tTechnology.DisableDate == null


                             //orderby 

            select new
            {
                tTechnologyTechnologyId = tTechnology.TechnologyId,
                tTechnologyName = tTechnology.Name,
                tTechnologyDescription = tTechnology.Description,
                tCityName = tTechnology.City.Name,
                tStateName = tTechnology.City.State.Name,
                tCountryName = tTechnology.City.State.Country.Name,
                tResolutions = subCase4.Measure,


                tEnableBy = (subCase.Name == null ? null : subCase.Name) + "" + (subCase.FirstLastName == null ? null : subCase.FirstLastName) + " " + (subCase.SecondLastName == null ? null : subCase.SecondLastName),
                                     tEnableDate = tTechnology.EnableDate,
                                     tLastChangeDate = tTechnology.LastChangeDate,
                                     tLastChangeBy = (subCase2.Name == null ? null : subCase2.Name) + " " + (subCase2.FirstLastName == null ? null : subCase2.FirstLastName) + " " + (subCase2.SecondLastName == null ? null : subCase2.SecondLastName),
                                     tDisableDate = tTechnology.DisableDate,
                                     tDisableBy = (subCase3.Name == null ? null : subCase3.Name) + " " + (subCase3.FirstLastName == null ? null : subCase3.FirstLastName) + " " + (subCase3.SecondLastName == null ? null : subCase3.SecondLastName),

            });

我想在示例

中列出技术所具有的所有决议作为学生的教师

0 个答案:

没有答案