Linq: Felder
auswählen in Query
Fehler: object
does not contain a definition for Fieldname
Code
|
Description
|
CS1061
|
'object' does not contain a definition for
'IDSearchAgent' and no extension method 'IDSearchAgent' accepting a first
argument of type 'object' could be found (are you missing a using directive
or an assembly reference?)
|
Problem:
Wenn man in Linq kombinierte Daten einer Abfrage erstellt,
dann kann man am Ende der Datenabfrage entweder die Datentabellen mit allen
Feldern komplett ausgeben, oder eine genau definierte Feld-Angabe machen, welche
Ergebnis-Felder für die Ausgabe benötigt werden.
Diese Angabe führt zu einem Fehler:
Query from join ..
select searchAgent.IDSearchAgent, asp.Email).Take(3000);
|
Lösung:
Man muss die Ausgabe in new{..} packen
select new { searchAgent.IDSearchAgent, q3.Email }).Take(3000);
|
Falsch:
Fehler:
Falsche Feld-Definition in der Abfrage
//--< Get Linq.Query >--
var query = (from searchAgent in _dbContext.tbl_SearchAgents
join users in _dbContext.tbl_Users on searchAgent.IDOwner equals users.IDUser into searchagents_with_user
from q2 in searchagents_with_user.DefaultIfEmpty()
join asp in _dbContext.Users on q2.IDAspNetUser equals asp.Id into searchagents_with_user_emails
from q3 in searchagents_with_user_emails.DefaultIfEmpty()
orderby searchAgent.IDOwner descending, searchAgent.IDSearchAgent descending
select searchAgent.IDSearchAgent, asp.Email).Take(3000);
//--</ Get Linq.Query >--
|
Lösung:
//--< Get Linq.Query >--
var query = (from searchAgent in _dbContext.tbl_SearchAgents
join users in _dbContext.tbl_Users on searchAgent.IDOwner equals users.IDUser into searchagents_with_user
from q2 in searchagents_with_user.DefaultIfEmpty()
join asp in _dbContext.Users on q2.IDAspNetUser equals asp.Id into searchagents_with_user_emails
from q3 in searchagents_with_user_emails.DefaultIfEmpty()
orderby searchAgent.IDOwner descending, searchAgent.IDSearchAgent descending
select new { searchAgent.IDSearchAgent, q3.Email }).Take(3000);
//--</ Get Linq.Query >--
|
Linq ist die moderne Erstellung von SQL Abfragen in
Zusammenarbeite mit EF EntityFramework.