C# linq jak zwrócić anonimowy typ?

0

Witam,

Take zapytanie do bazy:

var fieldList = ctx.v_ra_osoby_uprawnione
                    .SelectMany(d => ctx.v_ra_uprawnienia, (a, b) => new { a, b })
                    .Where(x => x.b.KT_ID == (int)parKlauzula.Value && x.b.OS_ID == x.a.OS_ID)
                    .Select(x => new { x.a.OS_IMIE, x.a.KO_SYMBOL, x.a.OS_NAZWISKO, x.a.OS_SYGNATURA_APS, x.b.UP_DATA_WAZNOSCI_KLAUZULI }).ToList();
 

Działa. Mam teraz do was pytanie - jak zwrócić to fieldList z jakiejś metody? Typ anonimowy bez nazwy. Muszę prawdopodobnie zadeklarować sobie typ jako klasę, czyli coś mniej więcej tak:

 
public class OsobyUprawnioneKlauzulaItem
    {
        public string OS_IMIE {get;set;}
        public string KO_SYMBO { get; set; }
        public string OS_NAZWISKO { get; set; }
        public string OS_SYGNATURA_APS { get; set; }
        public DateTime UP_DATA_WAZNOSCI_KLAUZULI { get; set; }
    }

Jak jednak zastosować ten typ w powyższym zapytaniu? Naprowadzi mnie ktoś?

1

.Select(x => new OsobyUprawnioneKlauzulaItem() { OS_IMIE = x.a.OS_IMIE, itd

1

Możesz zwrócić tym o nazwie dynamic.

private dynamic Foo()
{
return new {A = 1, B = "aaa"};
}

0

wydaje mi się, że w 3.5 można by było zwrócić po prostu object (to na pewno) a ten object potem rzutować na strukturę bądź klasę o pasujących polach do tej utworzonej anonimowo. albo od razu klasę tego typu zwracać.
ale to brzydki hack raczej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1