ich hab nen kleines Problem mit Linq, das mich in den Wahnsinn treibt. Vllt bin ich einfach nur blind, aber ich komm nich so richtig dahinter.
var res = (from b in begrgr
where
(from bb1 in begrgbez
where
!
(from bb2 in begrgbez
select new
{
bb2.Id_BegrGr2
}).Contains(new BegrGBez { Id_BegrGr1 = bb1.Id_BegrGr1 })
group bb1 by new
{
bb1.Id_BegrGr1
} into g
select new
{
Id_BegrGr1 = (System.Int16?)g.Key.Id_BegrGr1
}).Contains(new { b.Id_BegrGr })
select new
{
b.Id_BegrGr
}).Count();
An der Stelle .Contains(new BegrGBez { Id_BegrGr1 = bb1.Id_BegrGr1 }) haut er mir folgenden Fehler raus:
Zitat |
The type arguments for method 'System.Linq.Enumerable.Contains<TSource>(System.Collections.Generic.IEnumerable<TSource>, TSource)' cannot be inferred from the usage. Try specifying the type arguments explicitly. |
Ich habs auch versucht mit .Contains<BegrGBez>(new BegrGBez { Id_BegrGr1 = bb1.Id_BegrGr1 }), dann kommt folgendes:
Zitat |
Instance argument: cannot convert from 'System.Collections.Generic.IEnumerable<AnonymousType#1>' to 'System.Collections.Generic.IEnumerable<MsrAnalyzer.Data.Tables.BegrGBez> |
Wobei mir nich ganz klar is wo das herkommt, denn egtl hat er ja durch das "new BegrGBez" den Type.
Hat jemand eine Idee?
Vielen Dank schonmal.