Linq To SQL - dynamische Abfrage

07/08/2008 - 16:46 von Rafael G. | Report spam
Hallo NG,

ich habe mich gefreut, als ich in dem Buch "LINQ in Action" ein Beispiel
für den Aufbau einer dynmischen LINQ-Abfrage gefunden habe.
Nun führe ich diese aus, lasse mir mittels der LOG-Eigenschaft das SQL
ausgeben und muss feststellen, dass er trotzdem ein SELECT ohne WHERE
ausführt und dann wohl intern in LINQ erst die Ergebnismenge filtert.
Ist doch wenig performant oder? Wenn ich das statisch mache, dann baut
er das SQL wie erwartet mit der Where-Clause.

Hier das Bsp:

IEnumerable<Book> query = SampleData.Books;
if (i_MinPageNum.HasValue)
query = query.Where(book => book.PageCount >= i_MinPageNum);

if ( !string.IsNullOrEmpty(i_Title))
query = query.Where(book => book.Title.Contains(i_Title);

return query.Select( book => new { book.Title, bool.PageCount});

vg
Rafael
 

Lesen sie die antworten

#1 Markus Springweiler
07/08/2008 - 20:13 | Warnen spam
Rafael,

IEnumerable<Book> query = SampleData.Books;



Du musst die Referenz als IQueryable<Book> deklarieren, sonst baut dir der
Compiler keine Expressions.

/\/\arkus.

Ähnliche fragen