Announcement

Collapse
No announcement yet.

CompiledQuery.Compile Linq

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • CompiledQuery.Compile Linq

    soderla ... übung macht den ....

    mit meinem lehrlingsNivea :-) schaff ichs halt leider doch (noch) nicht:


    > alle gefundenen Compile-Querys beziehen sich stets auf ne Datenbank ..

    der Aufbau der CQuery:

    [highlight=vbnet]

    ReadOnly s_compQuery = CompiledQuery.Compile(Of AdventureWorksEntities, MyParams, IQueryable(Of SalesOrderHeader))( _
    Function(ctx, mySearchParams) _
    From sale In ctx.SalesOrderHeader _
    Where sale.ShipDate > mySearchParams.startDate _
    And sale.ShipDate < mySearchParams.endDate _
    And sale.TotalDue > mySearchParams.totalDue _
    Select sale)

    Sub CompiledQuery7()

    Using AWEntities As New AdventureWorksEntities()

    Dim myParams As MyParams = New MyParams()
    myParams.startDate = New DateTime(2003, 3, 3)
    myParams.endDate = New DateTime(2003, 3, 8)
    myParams.totalDue = 700.0

    Dim sales = s_compQuery.Invoke(AWEntities, myParams)

    For Each sale In sales
    Console.WriteLine("ID: {0}", sale.SalesOrderID)
    Console.WriteLine("Ship date: {0}", sale.ShipDate)
    Console.WriteLine("Total due: {0}", sale.TotalDue)
    Next

    End Using
    End Sub

    [/highlight]

    ReadOnly s_compQuery = CompiledQuery.Compile(Of AdventureWorksEntities,

    wie und was muss ich bei Of AdventureWorksEntities einsetzen ... wenn ich ja nicht auf ne DB sondern auf bestehende
    Datentypen/Classen zugreife ...
    bzw. WAS muss da in der class definiert sein ... dass ichs eben DORT korrekt reinschreibe *hüster*


    Beispielhaft "normale LinQ-Abfrage":
    [highlight=vbnet]
    ' MyDataList = List(OF Customer) z.b. 1000 datensätze ...

    Dim myList = From s in MyDataList Where S.ID > 100
    '
    ' eine gespeicherte LingAbfrage könnte/solle dann so aussehen ..

    Dim myList2 = s_compQuery.Invoke(MyDataList, 100)

    [/highlight]


    sollte jemand interesse haben ...
    gerade bei WEB anwendungen und Linq können da echt krasse performanceunterschiede erreicht werden

    http://msdn.microsoft.com/de-de/magazine/ee336024.aspx


    Anregungen, Tips, HILFE und (leichte) Kritik erwünscht :-)

    danke ...
    Vor 4,5 Millionen Jahren lernten ~wir~ aufrecht zu gehen!
    Um heute vorm PC zu sitzen!
Working...
X