2013-04-26 17 views
8

mogę wykonać następujące czynności:Dlaczego nie mogę użyć metody First/FirstOrDefault LINQ w OData?

container.Users.Where(u => u.Name == "Omar").FirstOrDefault()

ale

container.Users.FirstOrDefault(u => u.Name == "Omar")

zwraca NotSupportedException (The method 'FirstOrDefault' is not supported.).

Ponieważ są one zasadniczo takie same, dlaczego nie są obsługiwane?

Odpowiedz

9

Mechanizm tłumaczenia LINQ używany przez dostawcę OData nie obsługuje wszystkich scenariuszy.

Mimo że są logicznie takie same, należy wygenerować wyrażenie dla każdego, aby zbudować ciąg zapytania. Silnik nie obsługuje drugiej formy.

+0

Musisz użyć miejsca przed FirstOrDefault. na przykład container.Users.Where (u => u.Name == "Omar"). FirstOrDefault(); –

Powiązane problemy