C#:
var pilotgroup = (from t1 in db.Tabelle1
join t2 in db.Tabelle2 on t1.NUMBER equals t2.Id
where t2.IdClasse == "10"
select t1)
.GroupBy(t1 => t1.NUMBER)
.Select(group => new
{
pilotId = group.Key,
NUMBER = group.FirstOrDefault().NUMBER,
AuftragerhaltenGHT = group.Count(lg => lg.NUMBER == 0 && new int[] {31, 32, 40 }.Contains(lg.CAUSE)),
// hier kommen noch ca 100 solcher Abfragen, nach dem gleichen schema....
AuftragerhaltenGTR= group.Count(lg => lg.NUMBER == 1 && new int[] { 56, 40 }.Contains(lg.CAUSE)),
...
})
;
Die Expressions nach group.Count, würde ich gerne in Lambda Expressions auslagern.
Mein Versuch:
C#:
Func<int, int> test = lg => lg => lg.NUMBER == 0 && new int[] {31, 32, 40 }.Contains(lg.CAUSE);
//damit ich das dann wie folgt auslagern kann...
AuftragerhaltenGTR= group.Count(test);
Da wird aber ausgegeben, " nicht alle werte geben einen Ausdruck vom Typ int, int zurück"...
Ich denke da ist Grundsätzlich der Wurm drin. Kann mir jemand von euch auf die Sprünge helfen?