अगर ServiceStack.OrmLite के JoinSqlBuilder निम्नलिखित सरल प्रश्न के निर्माण की अनुमति मैं सोच रहा हूँ के निर्माण की अनुमति:करता ServiceStack.OrmLite.JoinSqlBuilder एक साधारण क्वेरी
SELECT * FROM Table1 a
INNER JOIN Table2 b ON ...
WHERE a.Column1 = 1 AND (a.Column2 = 2 OR b.Column3 = 3);
समस्या (a.Column2 = 2 OR b.Column3 = 3)
हिस्सा निर्माण करना है। JoinSqlBuilder में Where<T>, And<T>, Or<T>
जैसी विधियों की एक सूची है जो किसी क्वेरी के लिए शर्तों को जोड़ने की अनुमति देती है।
, अगर मैं कार्य करें:
builder
.Join(...)
.Where<Table1Poco>(a => a.Column1 == 1)
.And<Table1Poco>(a => a.Column2 == 2)
.Or<Table2Poco>(a => a.Column3 == 3)
...;
मैं मिल जाएगा:
... WHERE a.Column1 = 1 AND a.Column2 = 2 OR b.Column3 = 3;
वहाँ ServiceStack.OrmLite साथ a.Column1 = 1 AND (a.Column2 = 2 OR b.Column3 = 3)
निर्माण करने के लिए कोई तरीका है?
मुझे पता है कि मैं इसे कच्चे एसक्यूएल के साथ कर सकता हूं लेकिन यह एक विकल्प नहीं है क्योंकि मैं टाइप सुरक्षा और बोली स्वतंत्रता खोना नहीं चाहता हूं।
जहां तक मुझे पता है कि यह वहां नहीं है। और सूक्ष्म-ओम इस तरह या चीजों के लिए अच्छा है। आप जटिल परिदृश्यों के लिए सादे पुरानी क्वेरी पर वापस आ सकते हैं। उम्मीद है कि आप क्वेरी() फ़ंक्शन जानते हैं जिसका आप इसका उपयोग कर सकते हैं और यदि आप चाहें तो पैरामीटर पास कर सकते हैं। –
kunjee