Können Sie erklären, warum Beispiel # 1 mit "Keine Übersetzung in SQL" fehlschlägt und Beispiel # 2 funktioniert gut?LINQ: Keine Übersetzung nach SQL
Alle in Repository:
EX # 1:
public DomainPerson GetBestPerson()
{
var person= GetPeople().Where(p=>p.Quality=="Best").SingleOrDefault();
return person;
}
public IQueryable<DomainPerson> GetPeople()
{
var people= from p in Data.Persons
select MapToDomain(p);
return people;
}
private DomainPerson MapToDomain(Data.Person dataPerson)
{
DomainPerson domainPerson= new DomainPerson{
Id=dataPerson.Id,
Name=dataPerson.Name,
Quality=dataPerson.Quality,
};
return domainPerson;
}
EX # 2
public DomainPerson GetBestPerson()
{
var person= GetPeople().Where(p=>p.Quality=="Best").SingleOrDefault();
return person;
}
public IQueryable<DomainPerson> GetPeople()
{
var people= from p in Data.Persons
select new DomainPerson{
Id=dataPerson.Id,
Name=dataPerson.Name,
Quality=dataPerson.Quality,
};
return people;
}
Das ist völlig falsch. das würde die resultierende Abfrage zu einem IQueryable> machen, was überhaupt keinen Sinn ergibt. –
kastermester
Ja, ich vermisse einige Schritte in meiner Erklärung, fügte Code zur Klarstellung hinzu –