var list =
from a in TableA
select new B {
Count = a.TotalCount,
Title = a.Title
};
Jesteś nowy w górę instancją B w klauzuli SELECT i przypisać właściwości przy użyciu właściwości inline funkcję przypisania w C# 3.0.
Zalety odwzorowania w linii pochodzą z odroczonego wykonania instrukcji Linq. Linq zmapuje zmodyfikowaną instrukcję i wykona ją ze swojego IQueryable. Na przykład:
public class ClassA
{
public int TotalCount;
public string Title;
}
public class ClassB
{
public int Count;
public string Title;
}
public IQueryable<ClassB> FetchAllOfClassB()
{
var list =
from a in TableOfClassA
select new ClassB {
Count = a.TotalCount,
Title = a.Title
};
return list.AsQueryable();
}
Technicznie, AsQueryable()
jest nieco zbędny. Czasami używam go, aby to punkt, inni mówią, że jest to absolutnie wymagane. Niemniej jednak sam obiekt listy jest IQueryable klasy ClassB.
Następnie możesz zadzwonić pod numer FetchAllOfClassB()
i użyć narzędzia IQuerable. Jest całkiem zgrabny i wydajny.
Twoje pytanie jest niejasne ... Jaki jest związek między A i B? –
Zasadniczo reprezentują to samo. W moim przypadku A jest klasą generowaną przez Linq do Sql, gdy utworzyłem klasę Linq to Sql i dodałem do niej tabelę. Ponieważ klasa A ma zależności Linq i Linq do Sql, nie chcę udostępniać jej moim aplikacjom, więc tworzę klasę B, która nie ma żadnych zależności. Muszę zapełnić listę wystąpień klasy B z listy instancji klasy A. – Jeremy