C# LINQ查询中的GroupBy,具有多对多关系
我需要分组,只看两行,首先是C# LINQ查询中的GroupBy,具有多对多关系,c#,entity-framework,linq,concatenation,string-concatenation,C#,Entity Framework,Linq,Concatenation,String Concatenation,我需要分组,只看两行,首先是行。单元格[5]想要看ПППП、СП、ПППП 我应该如何做concat,或者我通常需要做什么 var n = from dog in dbGarbageRemoval.ДоговорSet join zakazchik in dbGarbageRemoval.ЗаказчикSet on dog.КодЗаказчика equals zakazchik.КодЗаказчика in
行。单元格[5]
想要看ПППП、СП、ПППП
我应该如何做concat,或者我通常需要做什么
var n = from dog in dbGarbageRemoval.ДоговорSet
join zakazchik in dbGarbageRemoval.ЗаказчикSet
on dog.КодЗаказчика equals zakazchik.КодЗаказчика into zak
join dogovor in dbGarbageRemoval.ДоговорыПереодичныхУслугSet
on dog.КодДоговора equals dogovor.КодДоговора into dogperiod
join dogovor2 in dbGarbageRemoval.ДоговорыБезПереодичностиУслугSet
on dog.КодДоговора equals dogovor2.КодДоговора into dognoperiod
from j1 in zak.DefaultIfEmpty()
from dp in dogperiod.DefaultIfEmpty()
join dni in dbGarbageRemoval.ДоговорыДниНеделиSet
on dp.КодДоговора equals dni.КодДоговора into dni2
from dni3 in dni2.DefaultIfEmpty()
from dp2 in dognoperiod.DefaultIfEmpty()
select new
{
dog.КодДоговора,
dog.СтоимостьЗаказа,
dog.ДатаЗаключенияДоговора,
j1.Фамилия,
j1.Имя,
j1.Отчество,
time = dp2 == null ? ?????????????????? :
dp2.ДатаВызова.Day <=9 && dp2.ДатаВызова.Month<=9 ?
"0"+dp2.ДатаВызова.Day+":"+ "0" + dp2.ДатаВызова.Month + ":" + dp2.ДатаВызова.Year + " " + dp2.ВремяВызова.ToString() :
dp2.ДатаВызова.Day <= 9 && dp2.ДатаВызова.Month > 9 ?
"0" + dp2.ДатаВызова.Day + ":" + dp2.ДатаВызова.Month + ":" + dp2.ДатаВызова.Year + " " + dp2.ВремяВызова.ToString() :
dp2.ДатаВызова.Day > 9 && dp2.ДатаВызова.Month <= 9 ?
dp2.ДатаВызова.Day + ":" + "0" + dp2.ДатаВызова.Month + ":" + dp2.ДатаВызова.Year + " " + dp2.ВремяВызова.ToString() :
dp2.ДатаВызова.Day + ":" +dp2.ДатаВызова.Month + ":" + dp2.ДатаВызова.Year + " " + dp2.ВремяВызова.ToString()
};
var n=来自dbGarbageRemoval.БББББББСС组中的狗
在dbGarbageRemoval加入zakazchik。三合一组
在狗的身上。ззчззгзгззгзгзгаззг107
将dogovor连接到dbGarbageRemoval.ББППиииччччччччччччч
在dog上,等于dogovor。在dogovor上,等于dogovor
将dogovor2连接到dbGarbageRemoval.ББГБББББСПССССччччччччччч
在dog上。在dog上。等于dogovor2。在dognoperiod中
从zak.DefaultIfEmpty()中的j1开始
来自dogperiod.DefaultIfEmpty()中的dp
将dni连接到dbGarbageRemoval.ББГБББиццццццццццц
关于dp.pköББББББББССССа等于dni.pköПББББББССССииа成dni2
来自dni2.DefaultIfEmpty()中的dni3
来自dognoperiod.DefaultIfEmpty()中的dp2
选择新的
{
狗。аааааа,
狗狗,
狗,狗,狗,狗,
j1.Фаааааа,
j1.Ма,
j1.чччччч,
时间=dp2==null????????????????:
dp2.аааааааазааааа日私有字符串somethod
{
int-num;
字符串allDays=z;
if(Int32.TryParse(z.ToString(),out num))
{
allDays=“”;
var linq=从dbGarbageRemoval.Бццццццццццццц
加入dbGarbageRemoval.Бцццццццц组中的天
在天。等于天。等于天
其中,天。БББББББСа==num
选择新的
{
天
};
foreach(linq中的var dayweek)
全天+=周.日;
allDays=allDays.Substring(0,allDays.Length-1);
}
全天返回;
}
变量n=(来自dbGarbageRemoval.ББББББББСС组中的dog)
在dbGarbageRemoval加入zakazchik。三合一组
在狗的身上。ззчззгзгззгзгзгаззг107
将dogovor连接到dbGarbageRemoval.ББППиииччччччччччччч
在dog上,等于dogovor。在dogovor上,等于dogovor
将dogovor2连接到dbGarbageRemoval.ББГБББББСПССССччччччччччч
在dog上。在dog上。等于dogovor2。在dognoperiod中
从zak.DefaultIfEmpty()中的j1开始
来自dogperiod.DefaultIfEmpty()中的dp
来自dognoperiod.DefaultIfEmpty()中的dp2
选择新的
{
狗。аааааа,
狗狗,
狗,狗,狗,狗,
j1.Фаааааа,
j1.Ма,
j1.чччччч,
时间=dp2==null?狗。狗。托弦()
dp2.аааааааазаааааа.您。
private string someMethod(string z)
{
int num;
string allDays = z;
if (Int32.TryParse(z.ToString(), out num))
{
allDays = "";
var linq = from day in dbGarbageRemoval.ДоговорыДниНеделиSet
join days in dbGarbageRemoval.ДеньНеделиSet
on day.КодДняНедели equals days.КодДняНедели
where day.КодДоговора == num
select new
{
days.НазваниеДняНедели
};
foreach (var dayweek in linq)
allDays += dayweek.НазваниеДняНедели + ",";
allDays = allDays.Substring(0, allDays.Length - 1);
}
return allDays;
}
var n = (from dog in dbGarbageRemoval.ДоговорSet
join zakazchik in dbGarbageRemoval.ЗаказчикSet
on dog.КодЗаказчика equals zakazchik.КодЗаказчика into zak
join dogovor in dbGarbageRemoval.ДоговорыПереодичныхУслугSet
on dog.КодДоговора equals dogovor.КодДоговора into dogperiod
join dogovor2 in dbGarbageRemoval.ДоговорыБезПереодичностиУслугSet
on dog.КодДоговора equals dogovor2.КодДоговора into dognoperiod
from j1 in zak.DefaultIfEmpty()
from dp in dogperiod.DefaultIfEmpty()
from dp2 in dognoperiod.DefaultIfEmpty()
select new
{
dog.КодДоговора,
dog.СтоимостьЗаказа,
dog.ДатаЗаключенияДоговора,
j1.Фамилия,
j1.Имя,
j1.Отчество,
time = dp2 == null ? dog.КодДоговора.ToString() :
dp2.ДатаВызова.Day <= 9 && dp2.ДатаВызова.Month <= 9 ?
"0" + dp2.ДатаВызова.Day + ":" + "0" + dp2.ДатаВызова.Month + ":" + dp2.ДатаВызова.Year + " " + dp2.ВремяВызова.ToString() :
dp2.ДатаВызова.Day <= 9 && dp2.ДатаВызова.Month > 9 ?
"0" + dp2.ДатаВызова.Day + ":" + dp2.ДатаВызова.Month + ":" + dp2.ДатаВызова.Year + " " + dp2.ВремяВызова.ToString() :
dp2.ДатаВызова.Day > 9 && dp2.ДатаВызова.Month <= 9 ?
dp2.ДатаВызова.Day + ":" + "0" + dp2.ДатаВызова.Month + ":" + dp2.ДатаВызова.Year + " " + dp2.ВремяВызова.ToString() :
dp2.ДатаВызова.Day + ":" + dp2.ДатаВызова.Month + ":" + dp2.ДатаВызова.Year + " " + dp2.ВремяВызова.ToString()
}).AsEnumerable().Select(x => new {x.КодДоговора, x.СтоимостьЗаказа, x.ДатаЗаключенияДоговора, x.Фамилия, x.Имя, x.Отчество, S = someMethod(x.time).ToString() });
dgvKnig.DataSource = n.ToList();