Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Linq: Felder auswählen in Query mit Select

16.08.2018 (👁199)


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.