2009-07-10 14 views
9

Ho questa configurazione nella hibernate.cfg.xml:La factory proxy è necessaria in NHibernate?

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> 
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property> 
    <property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=MyDB;Integrated Security=SSPI;</property> 
    <property name="show_sql">true</property> 
    </session-factory> 
</hibernate-configuration> 

Ho appena creato una libreria di classi e ho creato un test di integrazione utilizzando MbUnit. Fallisce Una parte del rapporto (quello che io penso è sufficiente) va qui:

** NO TESTS WERE RUN (No tests found) ** 
TestCase 'M:IntegrationTests.RepositoryTests.ListAllPostsReturnsAListOfPost' 
failed: The ProxyFactoryFactory was not configured. 
Initialize 'proxyfactory.factory_class' property of the session-factory configuration section with one of the available NHibernate.ByteCode providers. 

Ho letto molti tutorial e non ho visto questa configurazione di fabbrica proxy. Lo sta specificando davvero necessario? Se è così, come posso farlo? Devo fare riferimento ad altre librerie?

risposta

14

Se si utilizza l'ultima versione di NHibernate (2.1), si noterà che mainline for NH doesn't have a dependency on castle per la generazione di proxy, quindi tutti i tutorial che si stanno guardando sono probabilmente obsoleti.

Fondamentalmente, ora si dispone di alcune opzioni su come si desidera creare i proxy dinamici, quindi è necessario configurare in modo esplicito il generatore di proxy che si desidera utilizzare. Gli esempi possono essere trovati in questo how-to post on forge. Un elenco completo delle opzioni è referenziato here.

P.S. se vuoi mantenere le cose semplici, basta usare Castle dato che le versioni precedenti di NHibernate lo hanno utilizzato per impostazione predefinita.

+0

In base a [questa risposta] (http://stackoverflow.com/a/8932549/326110), non è nemmeno necessario configurare i proxy. –

Problemi correlati