Linq-- Left join + Group by

776 阅读1分钟
                var t1 = from d in dbContxt.Department
                         join x in dbContxt.Administer on d.Id equals x.DepartmentNo into temp
                         from tt in temp.DefaultIfEmpty()
                         select new { 
                            d.Id,
                            d.Name,
                            username=tt==null?"":tt.Username
                         };
                var t2 = from t in t1.ToList()
                         group t by new { t.Id, t.Name } into g
                         select new
                         {
                             g.Key,
                             list=g.Select(x=>x.username).Join(",")
                         };
                       
                         
    [{
    	"Key": {
    		"Id": "0",
    		"Name": "山东科技大学"
    	},
    	"list": "王 "
    }, {
    	"Key": {
    		"Id": "2101",
    		"Name": "能源学院"
    	},
    	"list": "安X"
    }, {
    	"Key": {
    		"Id": "2102",
    		"Name": "安全与环境工程学院7"
    	},
    	"list": "测试1,滕X"
    }, {
    	"Key": {
    		"Id": "2103",
    		"Name": "测绘学院11111"
    	},
    	"list": ""
    }, {
    	"Key": {
    		"Id": "2104",
    		"Name": "地球科学与工程学院"
    	},
    	"list": ""
    }