Results 1 to 6 of 6

Thread: Entity Framework 5 - TSQL naar Lambda (join met meerdere condities)

  1. #1
    *+E13818MU01F0F* Norrit's Avatar
    Join Date
    Aug 2001
    Location
    Landgraaf
    Posts
    967

    Entity Framework 5 - TSQL naar Lambda (join met meerdere condities)

    Ik krijg het niet voor elkaar om de volgende tsql query in EF5 code om te zetten:
    Code:
    select
      t1.*,
      t2.*
    from tabel1 t1
    left join tabel2 t2
      on t2.id=t1.id and t2.date > GetDate()
    Alles wat ik probeer geeft een resultaat middels een where (SQL Profiler)
    Probleem zit dus in die "t2.date > GetDate()"

    Iemand eerder met dit bijltje gehakt???
    Objective reality is a delirium caused by lack of alcohol in blood

  2. #2
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Een index op date zetten? Primary keys hebben meestal indexen.

  3. #3
    Waarom is het een probleem dat er een WHERE wordt gebruikt?
    Marcel

  4. #4
    *+E13818MU01F0F* Norrit's Avatar
    Join Date
    Aug 2001
    Location
    Landgraaf
    Posts
    967
    @Marcov:
    Het is geen onderdeel van een primary key. Het is alleen een filter om niet alle data over te hoeven halen (performance). Dit is onderdeel van een stuk paging, maar dan op datum.

    @Marcel:
    Probleem van de where is dat het resultaat anders is als er geen tabel2 records gevonden worden.
    Dan komt namelijk het t1 record ook niet mee terug, en dat wens ik toch wel te hebben.
    Objective reality is a delirium caused by lack of alcohol in blood

  5. #5
    Nog niet met dit specifieke bijltje gehakt, maar als mogelijke workaround zou je de conditie kunnen nemen:

    SQL Code:
    1. WHERE
    2.   t2.date > GetDate() OR t2.date IS NULL
    Als date een verplicht veld is (hoeft niet uniek te zijn, maar wel altijd ingevuld), dan is het een legitieme vervanging van de join-conditie.
    1+1=b

  6. #6
    *+E13818MU01F0F* Norrit's Avatar
    Join Date
    Aug 2001
    Location
    Landgraaf
    Posts
    967
    Als mogelijke workaround heb ik het nu opgelost door dit in 2 queries uit te voeren.
    Dat is nog sneller ook, .Include is niet kosteloos

    Over de .Include met meerdere condities, daar staat een changerequest van open.
    https://entityframework.codeplex.com/workitem/47

    Maar dat is nog ff wachten of het ook daadwerkelijk een keer erin komt...
    Objective reality is a delirium caused by lack of alcohol in blood

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •