Problém je v tom, že vy nesmíte vracet anonymní objekty z metody. To T v typu IEnumerable je jen vlastní typová proměnná, kterou tady nikde nepoužíváte. Buď můžete udělat metodu generickou, pak by měla hlavičku
public IEnumerable<T> GetNews<T>()
, což by znamenalo, že metoda bere jeden typový parametr a volala by se
GetNews<int>()
anebo jen
GetNews()
, pokud by tato metoda měla parametry a typ T by se z nich dal odvodit. Tohle však v tomto konkrétním případě nemá příliš smysl. To, co potřebujete, je, aby metoda nevracela anonymní typ, ale nějaký konkrétní typ. Udělejte si třídu NewsItem, která bude mít vlastnosti Title, Description, DateCreated, Name a Surname. Stačí použít automaticky implementované vlastnosti:
public string Title { get; set; }
Samotnou metodu GetNews pak udělejte tak, aby vracela IEnumerable<NewsItem> a v klauzuli select dejte
... select new NewsItem { Title = n.Title, ... }
Anonymní typy můžete používat jen v rámci metody. Dostat je ven se nedají (resp. dají, ale takovým hnusným hackem a nedělá se to).
|