सबसोनिक 2 आउट ऑफ द बॉक्स के साथ आप ऐसा नहीं कर सकते।
इसने कहा, आपके पास निम्नलिखित विकल्प हैं:
सबसोनिक का विस्तार करें
यदि आप पहले से ही SubSonic से परिचित हैं, तो आप SubSonic में ही मल्टी-कॉलम जॉइन जोड़ने पर विचार कर सकते हैं।
दृश्यों, संग्रहीत कार्यविधियों, तालिका कार्यों का उपयोग करें
यदि आप SubSonics कोड के साथ खिलवाड़ नहीं करना चाहते हैं, तो sql सर्वर के भीतर विचारों, संग्रहीत कार्यविधियों और/या तालिका कार्यों का उपयोग करें। SubSonic दृश्यों और संग्रहीत प्रक्रियाओं से डेटा तक पहुंचना आसान बनाता है।
इनलाइन क्वेरी का उपयोग करें
InlineQuery आपको किसी भी sql को निष्पादित करने की अनुमति देता है - यदि यह आपके कोड में नंगे sql रखने का विकल्प है।
InlineQuery के साथ बदसूरत समाधान
यदि आप पूरी तरह से SubSonic के साथ अपनी क्वेरी बनाना चाहते हैं, तो आप इसे आजमा सकते हैं:
SqlQuery q = DB.Select()
.From<TableA>()
.CrossJoin<TableB>()
.Where(TableA.YearColumn).IsEqualTo(0)
.And(TableA.MonthColumn).IsEqualTo(0)
.And(TableA.UseridColumn).IsEqualTo(0);
SQL कथन बनाएँ, और पैरामीटर नाम बदलें:
string s = q.BuildSqlStatement();
s = s.Replace(q.Constraints[0].ParameterName, TableB.YearColumn.QualifiedName);
s = s.Replace(q.Constraints[1].ParameterName, TableB.MonthColumn.QualifiedName);
s = s.Replace(q.Constraints[2].ParameterName, TableB.UserIdColumn.QualifiedName);
फिर InlineQuery के साथ s का उपयोग करें।