Ich habe gerade angefangen, Lambda-Ausdrücke zu verwenden, und mag die Verknüpfung wirklich. Ich mag auch die Tatsache, dass ich Spielraum innerhalb des Lambda der umfassenden Methode habe. Eine Sache, mit der ich Probleme habe, ist das Nisten von Lambdas. Hier ist, was ich zu tun versucht:Entity Framework und verschachtelte Lambda-Ausdrücke
public void DoSomeWork()
{
MyContext context = new MyDomainContext();
context.GetDocumentTypeCount(ci.CustomerId, io =>
{
if (io.HasError)
{
// Handle error
}
// Do some work here
// ...
// make DB call to get data
EntityQuery<AppliedGlobalFilter> query =
from a in context.GetAppliedGlobalFiltersQuery()
where a.CustomerId == ci.CustomerId && a.FilterId == 1
select a;
context.Load<AppliedGlobalFilter>(query, lo =>
{
if (lo.HasError)
{
}
**// Do more work in this nested lambda.
// Get compile time error here**
}
}, null);
}, null);
}
Der zweite Lambda ist, wo ich die folgende Kompilierung Fehler:
Kann nicht Lambda Ausdruck umwandeln geben ‚System.ServiceModel.DomainService.Client.LoadBehavior‘ Weil es kein Delegattyp ist
Der Compiler wählt die falsche Überladung für die Load-Methode, obwohl ich dieselbe Überschreibung verwende, die ich im vorherigen Lambda durchgeführt habe.
Ist das, weil ich versuche zu nisten? Oder habe ich etwas anderes falsch?
Danke,
-Scott
Entschuldigung - ich habe das Problem gefunden. Es hatte nichts mit dem verschachtelten Lambda und allem, was mit schlecht formatierten Schleifen in meinem Lambda zu tun hatte, zu tun. Das führte dazu, dass Intelisense verrückt wurde und einen falschen Fehler meldete. Alles ist gut mit dem obigen Code. – Scott