2015-06-11 4 views
5

Ich habe zwei Tabellen sind Status und Namelist.Es konnte kein konstanter Wert vom Typ 'xxx' erstellt werden. In diesem Kontext werden nur primitive Typen oder Aufzählungstypen unterstützt.

Staat

------------ 
id | state 
------------ 
1 |xxx 
2 |yyy 

Namensliste

--------------- 
id|Name |stateid 
-------------- 
1|aaa  |1 
2|abb  |1 
3|ccc  |2 
4|dds  |2 

Ich möchte das die Ergebnistabelle als

------------------ 
state |count 
------------------- 
xxx  | 2 
yyy  | 2 

ich bei der Verwendung von Linq-Abfrage das obige Ergebnis wollen

Ich versuchte unter dem Code, aber das gibt Fehler als (Konnte einen konstanten Wert vom Typ 'xxx' nicht erstellen. In diesem Kontext werden nur primitive Typen oder Aufzählungstypen unterstützt.)

var count= (from n in bc.db.state 
      select new 
        { 
        states = n.state, 
        count = (from c in bc.db.namelist 
          where c.stateid == n.id 
          select n).Count() 
        }); 

Weiß jemand, wie man dieses Problem löst?

+0

Sie suchen Gruppe von .... http://stackoverflow.com/questions/11564311/sql-to-entity- framework-count-group-by – Mick

Antwort

2

Sie müssen Gruppe verwenden, indem ...

var list= 
(from n in bc.db.state 
join c in bc.db.namelist on n.id equals c.stateid 
group n by n.state into g 
select new 
{ 
    State = g.Key, 
    Count = g.Count() 
}); 
+0

Vielen Dank Mick, dein Code funktioniert gut ... –

Verwandte Themen