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.