2009-05-12 10 views
15

मूल रूप से मैं यह करने के सक्षम होना चाहते हैं:निष्पादित SQL कथन

session.ExecuteSql("...");

मैं इसे किसी भी संस्थाओं के लिए नक्शे या किसी मान की जरूरत नहीं है। कोई सुझाव?

+0

विशेष रूप से एक फ्लुएंट एनएचबेर्नेट संबंधित प्रश्न नहीं है। –

उत्तर

27

जैसा कि पहले ही उल्लेख किया है, यह एक धाराप्रवाह NHibernate मुद्दा नहीं है, लेकिन यहाँ एक उदाहरण है:

public int GetSqlCount<T>(Session session, string table) 
{ 
    var sql = String.Format("SELECT Count(*) FROM {0}", table); 
    var query = session.CreateSQLQuery(sql); 
    var result = query.UniqueResult(); 
    // Could also use this if only updating values: 
    //query.ExecuteUpdate(); 

    return Convert.ToInt32(result); 
} 

आप ISQLQuery इंटरफेस की जांच के लिए, अपनी आवश्यकताओं पर निर्भर करता है चाहते हैं।

+1

क्या इनलाइन के बजाय धाराप्रवाह nhibernate में नामित क्वेरी का उपयोग कर ऐसा करने का कोई तरीका है? –

+1

कोई एफएनएच-विशिष्ट तरीका नहीं है लेकिन इसे एनएचबरबेट कॉन्फ़िगरेशन के साथ ठीक काम करना चाहिए। एफएनएच के बिना, अपने नामित प्रश्नों को .hbm.xml फ़ाइल में रखें। फिर अपने एफएनएच मैपिंग के साथ मैपिंग फ़ाइल लोड करने के लिए एफएनएच को कॉन्फ़िगर करें और आपको GetNamedQuery() विधि का उपयोग करके क्वेरी को कॉल करने में सक्षम होना चाहिए। –

संबंधित मुद्दे