2015-01-13 19 views
7

birkaç gün geri i gibi bir şey görünce spesifik LINQ parçası, dokümanlar, okuma Delphi için yeni ORM iyi i oldu çalışıyordu ilk gördüğüm an. "Emp ['Sal']> 1000" ifadesi bir lambda ifadesi değil ?! deneme sürümü bu bileşen kaynaklarla gelmediğinden beri, işlev/yordamın nasıl bildirildiğini anlayamadım.Bu lambda mı? Eğer değilse, nedir?</p> <pre><code>Linq.From(Emp).Where(Emp['Sal'] > 1000) </code></pre> <p>bana uyanmak demek lazım: Devart EntityDAC denilen dan

referans: http://www.devart.com/entitydac/docs/ -> Linq Sorgular -> Linq sözdizimi -> seans

+1

Bu Pascal olabileceğini sanmıyorum çünkü 'Emp ['Sal']> 1000' ifadesi' Where' çağırılmadan önce değerlendirilecektir. Neden Devart'a sormuyorsun? –

+2

EntityDAC .net ve delphi için kullanılabilir ve özellikle linq kısmı farklıdır. Ama ayrıca bir bölüm var [String olarak LINQ Sorgu Argümanlarını Belirleme] (http://www.devart.com/entitydac/docs/specify_linq_query_arguments_as_string.htm) ve sanırım bunu delphi –

+1

@DavidHeffernan ile kullanmak zorundasınız. ? Operatör aşırı yükleme kodundaki bir değerler listesi oluşturarak ve o listeyi nerelerde kullanıyor olmanız gibi bir şey başaramadınız? Kullanılmayan bir sonucu etkili bir şekilde iade edersiniz. – Graymatter

cevap

12

I mentioned this in a blog post a few months ago. Bakmam gereken kaynak yok Nerede doğru ilerleyin, ama neredeyse kesinlikle bu şekilde bitti:

    bir record türde bir değer verir Emp['Sal']
  • sentezleme
  • Bu kayıt, operatör aşırı yükler buna deklare
  • Delphi dil operatör aşırı yüklenmeleri olarak tanımlar işlevleri ve belirtilen veya sezgisel türlerini döndürmelerini gerektirmez. Bu nedenle, > işlecini burada bir boole döndürmüyor, daha ziyade başka bir kayıt. Bu operatörler zincirleme yoluyla, LINQ değerlendiricileri tarafından değerlendirilebilen bir ifade ağacı oluşturulabilir.
+0

thx, delphi bu özelliği vardı bilmiyordum. daha fazla bakacağım – kabstergo

İlgili konular