2010-12-22 10 views
8

लौटाया है, मैं एक इंटरमीडिएट मैपिंग टेबल के साथ कई से कई होने के लिए एक से एक मैपिंग होने से एक टेबल स्विच करने की कोशिश कर रहा हूं। हालांकि, जब मैंने इसे स्विच किया और एनएचबीर्नेट के साथ एक प्रश्न करने की कोशिश की, तो यह मुझे यह त्रुटि दे रहा है: "इंटरसेप्टर.ऑनपेरेयरस्टेटमेंट (एसक्लस्ट्रिंग) शून्य या खाली एसक्लस्ट्रिंग लौटा।"NHibernate AssertException: Interceptor.OnPrepareStatement (SqlString) शून्य या खाली SqlString

मेरे क्वेरी मूल रूप से और अधिक जटिल कुछ था, लेकिन मैं यह एक बुनियादी में स्विच सभी लाने और मैं अभी भी समस्या आ रही है:

Session.QueryOver<T>().Future(); 

यह प्रतीत या तो अपने मॉडल मानचित्रण फ़ाइलों में एक समस्या होगी या मेरे डेटाबेस में कुछ।

यहाँ मेरी मॉडल मैपिंग हैं:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="GBI.Core" namespace="GBI.Core.Models"> 

<class name="Market" table="gbi_Market"> 
    <id name="Id" column="MarketId"> 
     <generator class="identity" /> 
    </id> 
    <property name="Name" /> 
    <property name="Url" /> 
    <property name="Description" type="StringClob" /> 
    <property name="Rating" /> 
    <property name="RatingComment" /> 
    <property name="RatingCommentedOn" /> 
    <many-to-one name="RatingCommentedBy" column="RatingCommentedBy" lazy="proxy"></many-to-one> 
    <property name="ImageFilename" /> 
    <property name="CreatedOn" /> 
    <property name="ModifiedOn" /> 
    <property name="IsDeleted" /> 

    <many-to-one name="CreatedBy" column="CreatedBy" lazy="proxy"></many-to-one> 
    <many-to-one name="ModifiedBy" column="ModifiedBy" lazy="proxy"></many-to-one> 

    <set name="Content" where="IsDeleted=0 and ParentContentId is NULL" order-by="Ordering asc, CreatedOn asc, Name asc" lazy="extra"> 
     <key column="MarketId" /> 
     <one-to-many class="MarketContent" /> 
    </set> 

    <set name="FastFacts" where="IsDeleted=0" order-by="Ordering asc, CreatedOn asc, Name asc" lazy="extra"> 
     <key column="MarketId" /> 
     <one-to-many class="MarketFastFact" /> 
    </set> 

    <set name="NewsItems" table="gbi_NewsItem_Market_Map" lazy="true"> 
     <key column="MarketId" /> 
     <many-to-many class="NewsItem" fetch="join" column="NewsItemId" where="IsDeleted=0"/> 
    </set> 

    <!--<set name="MarketUpdates" table="gbi_Market_MarketUpdate_Map" lazy="extra"> 
     <key column="MarketId" /> 
     <many-to-many class="MarketUpdate" fetch="join" column="MarketUpdateId" where="IsDeleted=0" order-by="CreatedOn desc" /> 
    </set>--> 

    <set name="Documents" table="gbi_Market_Document_Map" lazy="true"> 
     <key column="MarketId" /> 
     <many-to-many class="Document" fetch="join" column="DocumentId" where="IsDeleted=0"/> 
    </set> 
</class> 

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="GBI.Core" namespace="GBI.Core.Models"> 

<class name="MarketUpdate" table="gbi_MarketUpdate"> 
    <id name="Id" column="MarketUpdateId"> 
     <generator class="identity" /> 
    </id> 
    <property name="Description" /> 
    <property name="CreatedOn" /> 
    <property name="ModifiedOn" /> 
    <property name="IsDeleted" /> 

    <!--<many-to-one name="Market" column="MarketId" lazy="proxy"></many-to-one>--> 

    <set name="Comments" where="IsDeleted=0" order-by="CreatedOn desc" lazy="extra"> 
     <key column="MarketUpdateId" /> 
     <one-to-many class="MarketUpdateComment" /> 
    </set> 

    <many-to-one name="CreatedBy" column="CreatedBy" lazy="proxy"></many-to-one> 
    <many-to-one name="ModifiedBy" column="ModifiedBy" lazy="proxy"></many-to-one> 
</class> 

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="GBI.Core" namespace="GBI.Core.Models"> 

<class name="MarketUpdateMarketMap" table="gbi_Market_MarketUpdate_Map"> 
    <id name="Id" column="MarketUpdateMarketMapId"> 
     <generator class="identity" /> 
    </id> 
    <property name="CreatedOn" /> 
    <property name="ModifiedOn" /> 
    <property name="IsDeleted" /> 

    <many-to-one name="CreatedBy" column="CreatedBy" lazy="proxy"></many-to-one> 
    <many-to-one name="ModifiedBy" column="ModifiedBy" lazy="proxy"></many-to-one> 

    <many-to-one name="MarketUpdate" column="MarketUpdateId" lazy="proxy"></many-to-one> 
    <many-to-one name="Market" column="MarketId" lazy="proxy"></many-to-one> 
</class> 

मैं उल्लेख किया है, MarketUpdate मूल रूप से था एक कई-से-एक बाजार के साथ (मार्केट आईडी सी शरद ऋतु अभी भी वहां है, लेकिन मैं इसे अनदेखा कर रहा हूं। क्या यह समस्या हो सकती है?)। लेकिन मैंने इसे कई से अधिक बनाने के लिए Market_MarketUpdate_Map तालिका में जोड़ा है।

मैं यह पता लगाने की कोशिश कर रहा हूं कि यह क्या हो सकता है। खोज करते समय मुझे इस त्रुटि का कोई संदर्भ नहीं मिला। और यह ज्यादा जानकारी प्रदान नहीं करता है।

का उपयोग करना:

NHibernate 2.2

.NET 4.0

SQL सर्वर 2005

उत्तर

16

बाहर कर देता है समस्या था सिर्फ इतना है कि xml मैपिंग फ़ाइल में एम्बेडेड संसाधन के बजाय सामग्री के रूप में स्थापित किया गया था दृश्य स्टूडियो। बदल रहा है कि मेरी सभी समस्याओं को ठीक कर दिया।

1

यदि आप मैपिंग के लिए xml के बजाय फ्लुएंट का उपयोग कर रहे हैं और इस समस्या का सामना करते हैं, तो उत्पन्न xml फ़ाइलों को %root%\LocalCache\NHibernate में हटाने का प्रयास करें।

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