NHibernate AssertException: Interceptor.OnPrepareStatement (SqlString) вернул нулевой или пустой SqlString

Я пытаюсь переключить таблицу с отображения многие-к-одному на отображение многие-ко-многим с промежуточным таблица сопоставления. Однако, когда я переключил его и попытался выполнить запрос с помощью NHibernate, он выдает такую ​​ошибку: «Interceptor.OnPrepareStatement (SqlString) вернул null или пустой SqlString».

Изначально мой запрос был чем-то более сложным, но Я переключил его на базовую загрузку всех, и я m все еще имеет проблему:

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 (столбец MarketId все еще там, но я его игнорирую. Может ли это быть проблемой?). Но я добавил в таблицу Market_MarketUpdate_Map, чтобы сделать ее «многие ко многим».

Я бегаю по кругу, пытаясь понять, что это может быть. При поиске мне не удалось найти никаких ссылок на эту ошибку. И в нем нет подробностей.

Использование:

NHibernate 2.2

.NET 4.0

SQL Server 2005

9
задан jwynveen 22 December 2010 в 18:50
поделиться