मुझे व्यवसाय फ़िल्टर बाधा व्यक्त करने में सक्षम होने के लिए मानदंड एपीआई में वर्ष() और महीने() फ़ंक्शन का उपयोग करने की आवश्यकता है।एनएच मानदंड एपीआई में उपयोगकर्ता वर्ष() और महीने() फ़ंक्शन कैसे करें?
cri.Add(Expression.Ge("year(Duration.DateFrom)", Year.Value));
cri.Add(Expression.Le("year(Duration.DateTo)", Year.Value));
स्पष्ट रूप से काम नहीं करते - क्या कोई समाधान है इसे प्राप्त करने के लिए कोई समाधान है?
मैं जानता हूँ कि यह HQL में पूरी तरह से संभव है, लेकिन मैं मापदंड एपीआई का उपयोग कर क्वेरी के निर्माण के लिए क्वेरी छँटाई जोड़ने, पृष्ठन आदि के प्रसंस्करण के लिए कुछ अतिरिक्त प्रक्रियाओं वहाँ हो क्योंकि जरूरत है ..
नमूना HQL समाधान जो मैं मानदंड एपीआई को फिर से लिखना चाहता हूं:
var ym = year * 100 + month;
var hql = ...(:ym between 100 * year(f.Duration.DateFrom) + month(f.Duration.DateFrom) and 100 * year(f.Duration.DateTo) + month(f.Duration.DateTo)";
यह दुर्भाग्य से पर्याप्त नहीं है। उपयोगकर्ता इनपुट वर्ष + महीने है और मुझे वर्ष + महीने के अंतराल की अवधि के साथ सभी वस्तुओं को वापस करने की आवश्यकता है। एचक्यूएल में सिममिलर समाधान इस तरह दिखता है: var ym = year * 100 + month; var hql = ... (: ym 100 * वर्ष (f.Duration.DateFrom) + महीने (f.Duration.DateFrom) और 100 * वर्ष (f.Duration.DateTo) + माह (f.Duration.DateTo) के बीच ym "; मैं समझने में सक्षम नहीं हूं कि मानदंड एपीआई का उपयोग करके एक ही प्रश्न कैसे बनाएं। – Buthrakaur
संपादित करने के जवाब में: मेरे पास सिर्फ एक वर्ष + महीने का संयोजन है। उपयोगकर्ता की कहानी इस प्रकार है:" मुझे अवधि के साथ ऑब्जेक्ट दिखाएं सितंबर 200 9 को कवर करना "। मेरे पास ऑब्जेक्ट {DateFrom = new DateTime (2008,1,1), DateTo = new DateTime (2222, 1, 2)} हो सकता है और उपयोगकर्ता इनपुट" सितंबर 200 9 "है - आपका सुझाव यहां काम नहीं करता है । – Buthrakaur