I N X S
Captain
- Registriert
- Jan. 2007
- Beiträge
- 3.448
Hey,
ich hab ne Linq abfrage bei der ich die Werte nach einer Res_ID gruppiere, das sind dann jeweils 1 Key , die Id, und 3 Werte in dieser Gruppe.
Ich möchte jetzt, dass ich nicht 3 rückgabewerte habe, sondern die insgesamt 4 Werte zu einem "select new {}" mache.
Bisher habe ich das immer mit grouping.FirstOrDefault() gemacht und dann aus der gruppierung den jewieligen wert geholt, aber das ist sicher nicht sinn der sache, weil es auch ewig lange dauert von der Abfrage...
So sieht der Code aus:
Ich hab zwar jetzt schon einiges mit Linq gemacht, aber ich glaube die Abfrage ist nicht so das wahre, würde mich über verbesserungen freuen!
Grüße
Jonny
ich hab ne Linq abfrage bei der ich die Werte nach einer Res_ID gruppiere, das sind dann jeweils 1 Key , die Id, und 3 Werte in dieser Gruppe.
Ich möchte jetzt, dass ich nicht 3 rückgabewerte habe, sondern die insgesamt 4 Werte zu einem "select new {}" mache.
Bisher habe ich das immer mit grouping.FirstOrDefault() gemacht und dann aus der gruppierung den jewieligen wert geholt, aber das ist sicher nicht sinn der sache, weil es auch ewig lange dauert von der Abfrage...
So sieht der Code aus:
Code:
var query = ( from res in objEntity.Resource
where res.Active == true &&
(
res.Language_ID == firstLangId
||
res.Language_ID == secondLangId
||
res.Language_ID == thirdLanguage.id
)
group res by res.Res_ID into grouping
where grouping.Any( f =>
( f.Res_ID.Equals( seachInt )
||
f.Value.Contains( searchString )
||
f.Res_ID == seachKey ) )
select grouping into newGrouping
where newGrouping.Any( f =>
( emptyLanguageId == -1
||
( f.Language_ID == emptyLanguageId
&& f.Value == "" ) ) )
select
new
{
ID = newGrouping.Key,
Key = newGrouping.FirstOrDefault().Res_Key,
German = newGrouping.FirstOrDefault( k => k.Language_ID == 1 ).Value,
English = newGrouping.FirstOrDefault( k => k.Language_ID == 2 ).Value,
Third = newGrouping.FirstOrDefault( k => k.Language_ID == thirdLanguage.id ).Value,
} )
Ich hab zwar jetzt schon einiges mit Linq gemacht, aber ich glaube die Abfrage ist nicht so das wahre, würde mich über verbesserungen freuen!
Grüße
Jonny