1

私はそれについて調査しており、すべてのソリューションは1つのソリューションを指摘しており、以下のコードのlibeを使用してint .hbm.xmlファイルに配置しています。しかし、私は持っていません。私が持っているのは、hibernate.cfg.xml と nhvalidator.cfg.xml です。

http://forums.asp.net/t/1407518.aspx/1から読みました が、クエリ タグはどこに入力できますか? hibernate.cfg.xml (以下を参照) に入力しましたが、機能しません。

<?xml version="1.0" encoding="utf-16"?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
        <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
        <property name="connection.connection_string">Server=localhost\MSSQLSERVERR2;Database=SupplierSearch;Trusted_Connection=True</property>
        <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
        <property name="cache.use_minimal_puts">false</property>
        <property name="use_outer_join">false</property>
    </session-factory>
   <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
  namespace="Quarry.SupplierSearch"
  assembly="SupplierSearch">
    <class name="SupplierSearch" table="Client" lazy="true">
      <id name="ClientId" column="ClientId">
        <generator class="native" />
      </id>

      <property name="FirstName" column="FirstName" />
      <property name="ClientId" column="ClientId" />

      <loader query-ref="GetAllClient"/>
    </class>
    <sql-query name="GetAllClient" >
      <return alias="GetAllClient" class="SupplierSearch">
        <return-property name="ClientId" column="ClientId"/>
        <return-property name="FirstName" column="FirstName"/>
      </return>
      exec GetAllClient 
    </sql-query>
  </hibernate-mapping>
</hibernate-configuration>

動作していないので、クライアントがマップされている Client.nhv.xml (以下を参照) に入力してみました)

<?xml version="1.0" encoding="utf-8"?>
<nhv-mapping assembly="Quarry.SupplierSearch" namespace="Quarry.SupplierSearch.Model" xmlns="urn:nhibernate-validator-1.0">
    <class name="Client">
        <property name="Address1">
            <not-null />
        </property>
        <property name="Address2">
            <not-null />
        </property>
        <property name="BusinessName">
            <not-null />
        </property>
        <property name="ClientId">
            <not-null />
            <digits integerDigits="10" />
        </property>
        <property name="Country">
            <not-null />
        </property>
        <property name="FirstName">
            <not-null />
        </property>
        <property name="LastName">
            <not-null />
        </property>
        <property name="ListingType">
            <not-null />
            <digits integerDigits="10" />
        </property>
        <property name="PhoneNumber">
            <not-null />
        </property>
        <property name="PostCode">
            <not-null />
        </property>
        <property name="State">
            <not-null />
        </property>
    </class>
  <loader query-ref="GetAllClient"/>
  <sql-query name="GetAllClient">
    <load-collection alias="Clients" role ="Client"/>
    exec [GetAllClient] 
  </sql-query>
</nhv-mapping>

これを機能させるための提案はありますか?ありがとう

4

2 に答える 2

1

埋め込みリソースではClient.hbm.xmlなく、呼び出す必要があります。Client.hbv.xml

編集hbv を生成するツールに精通しておらず、で始まるマッピングを見たこともありません<nhv-mapping .. >。これを機能させるために使用する必要があるカスタム プラグイン/DLL が必要です。どのツールを使用していますか?

ただし、カスタム ツールを使用せずに SP を動作させるためのこのブログ投稿を見たことがありますか。

于 2012-05-13T17:31:48.420 に答える
1

load-collection では、ストアド プロシージャの使用はサポートされていません (スカラーのみ)。次の形式を使用します。

<sql-query name="GetAllClient">
    <load-collection alias="Clients" role ="Client"/>
    SELECT {c.*}
    FROM client c
</sql-query>

(もちろん、「SELECT ... FROM ...」部分の代わりにストアドプロシージャ内部のものを使用してください。)

于 2012-05-25T03:33:43.207 に答える