Chciałbym utworzyć zapytanie z krzyżem zastosować do funkcji wartości zdefiniowanej przez użytkownika w LINQ. SQL byłoby naprawdę dość proste, jak poniżej:LINQ do SQL stosuje się krzyżykiem
SELECT *
FROM MyTable mt
CROSS APPLY MyTVF(mt.id)
This postu podaje przykład kwerendy LINQ, które powoduje generowanego SQL, która zawiera zarówno krzyż zastosowanie i zewnętrzną stosuje się jednak tylko do kwerendy sub nie dla tvf. This Artykuł potwierdza, że LINQ do SQL będzie generować cross apply i zewnętrznych operatorów apply dla "Nawigacja relacji", ale nie jestem pewien co to oznacza w tym kontekście. This post opisuje dokładnie to, co chcę zrobić, a odpowiedź mówi, że jedynym sposobem, aby to zrobić, jest zawarcie zapytania SQL w procedurze przechowywanej, a następnie wywołanie sp za pomocą LINQ. Mam nadzieję, że nie jest to prawdą, ponieważ tak naprawdę potrzebuję tvf, który może być używany w ten sposób w całej aplikacji w wielu zapytaniach LINQ, więc "zawiń to w sp" nie będzie działało dla mnie. Czy ktoś wie o sposobie, aby uzyskać coś podobnego prostej instrukcji SQL powyżej za pośrednictwem LINQ?
keep biorąc pod uwagę, że relacja między linq i SQL nie jest sursetywna, więc nie każde polecenie SQL może być interpretowane przez linq. – nothrow