mam listę podmiotów, które mogą być przedstawione, tak jak:Jak zamówić listę jednostek przez zamówienie niestandardowe?
Type | Property A | Property B | ...
--------------------------------------
A | ABC | 123 | ...
A | ABC | 123 | ...
D | ABC | 123 | ...
D | ABC | 123 | ...
B | ABC | 123 | ...
C | ABC | 123 | ...
Typ to łańcuch i może być tylko jeden z 4 różnych wartości (na przykład A, B, C, D). Muszę zamówić te jednostki przez Typ, ale z zamówieniem niestandardowym (np. A, D, B, C).
Próbowałem coś takiego:
var orderType = new Dictionary<string, int>() {
{ "A", 0 },
{ "D", 1 },
{ "B", 2 },
{ "C", 3 }
};
return db.MyEntity
.OrderBy(x => orderType[x.Type])
.ToList();
Ale pojawia się następujący błąd:
LINQ do podmiotów nie rozpoznaje metody 'Int32 get_Item (System.String)' metoda i ta metody nie można przetłumaczyć na wyrażenie składowania.
Nie rozumiem tego błędu i nie wiem, co zrobić z tym użytkownikiem. Czy możesz mi powiedzieć, jak zamówić te jednostki przez Wpisz z zamówieniem niestandardowym?
Powód to nie działa, ponieważ jest EntityFramework będą musiały wysłać teh Słownik nad SQL w niektórych sposób, który nie może zrobić wydajnie. – jessehouwing
Możesz to osiągnąć, mówiąc EntityFramework jak przetłumaczyć twój słownik na funkcję opartą na predykatach. http://stackoverflow.com/a/16839341/736079 – jessehouwing