LINQ zawsze zwraca sekwencję, więc musisz odzyskać element z niej. Jeśli wiesz, że będziesz mieć tylko jeden wynik, użyj Single()
, aby odzyskać ten przedmiot.
var item = (from Comp in ServiceGroupdb.ServiceGroupes
where (Comp.GroupID == groupID)
select Comp.Name).Single();
Istnieją cztery metody LINQ aby pobrać pojedynczy element spośród sekwencji:
Single()
zwraca pozycję, zgłasza wyjątek, jeśli istnieją 0 lub więcej niż jeden element w sekwencji.
SingleOrDefault()
zwraca pozycję lub wartość domyślną (null
dla string
). Zgłasza, jeśli występuje więcej niż jeden element w sekwencji.
- zwraca pierwszy element. Zgłasza, jeśli w sekwencji jest 0 elementów.
FirstOrDefault()
zwraca pierwszy element lub wartość domyślną, jeśli nie ma żadnych przedmiotów)
Dlaczego deklarujesz odpowiedź jako IQueryable, jeśli oczekujesz tylko jednej odpowiedzi? Czy wiele ciągów może być błędem? Jeśli oczekujesz wielu odpowiedzi, przekonwertuj je na tablicę, a następnie zmień ją, aby zwracała pojedynczy ciąg. –
Lazarus
Im oczekuje, aby uzyskać jeden ciąg w wyniku – thechmodmaster
, ale gdy wykonuję: string nazwa = od Comp w ServiceGroupdb.ServiceGroupes gdzie (Comp.GroupID == groupID) wybierz Comp.Name; – thechmodmaster