2011-08-30 3 views
1

En comparant la sortie suivante avec des exemples que j'ai vus ici à Stack Overflow et sur Internet, je me demande ce que je fais mal, car apparemment les propriétés et format_sql sont correctement définies ?La propriété format_sql de NHibernate (pas que) jolie impression

sortie

NHibernate: 
    SELECT 
     book0_.Isbn as Isbn0_0_, 
     book0_.Title as Title0_0_, 
     book0_.Author as Author0_0_, 
     book0_.Publisher as Publisher0_0_, 
     book0_.Published as Published0_0_, 
     book0_.Pages as Pages0_0_, 
     book0_.InStock as InStock0_0_, 
     book0_.Description as Descript8_0_0_ 
    FROM 
     Books book0_ 
    WHERE 
     [email protected]; 
    @p0 = '0596800959' [Type: String (0)] 

Book.cs

public class Book 
{ 
    public string Isbn { get; set; } 
    public string Title { get; set; } 
    public string Author { get; set; } 
    public string Publisher { get; set; } 
    public DateTime Published { get; set; } 
    public int? Pages { get; set; } 
    public bool InStock { get; set; } 
    public string Description { get; set; } 
} 

Book.hbm.xml

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
        assembly="Dotnet.Samples.NHibernate" 
        namespace="Dotnet.Samples.NHibernate"> 
    <class name="Book" table="Books" lazy="false"> 
    <id name="Isbn" /> 
    <property name="Title" /> 
    <property name="Author" /> 
    <property name="Publisher" /> 
    <property name="Published" /> 
    <property name="Pages" /> 
    <property name="InStock" /> 
    <property name="Description" /> 
    </class> 
</hibernate-mapping> 

salut bernate.cfg.xml

<?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="dialect">NHibernate.Dialect.MsSqlCeDialect</property> 
    <property name="connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property> 
    <property name="connection.connection_string">Data Source=res/Catalog.sdf</property> 
    <property name="show_sql">true</property> 
    <property name="format_sql">true</property> 
    <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property> 
    </session-factory> 
</hibernate-configuration> 

Tout conseil sera vraiment apprécié. Merci beaucoup d'avance.

MISE À JOUR Dans

réponse aux commentaires J'ajoute comment le attendu sortie devrait ressembler (essentiellement une instruction SQL valide):

NHibernate: 
    SELECT 
     Isbn, 
     Title, 
     Author, 
     Publisher, 
     Published, 
     Pages, 
     InStock, 
     Description 
    FROM 
     Books 
    WHERE 
     Isbn = '0596800959' 
+0

Vous voulez être en mesure de copier et de coller la requête à partir du journal/etc Console dans somthing comme SQL Server Management Studio et exécutez la requête avec toute modification? Fondamentalement, vous voulez une version exécutable du SQL qui sort de nhibernate? –

+0

En effet je veux dire suis-je trop ambitieux (si vous nommez une propriété "show_sql" ou "format_sql") en espérant qu'une sortie se conforme au langage SQL? Je n'ai aucune raison de m'attendre à autre chose. –

+0

Eh bien, je suppose que c'est fondamentalement conforme à la norme SQL. La seule chose que vous devez faire est d'éditer les variables ou de définir explicitement le filtre where avec la valeur @ P0. Je suis d'accord, c'est une douleur, paiticulary si vous avez un grand nombre de variables comme dans une déclaration d'insertion. Un produit commercial que vous pourriez essayer est http://nhprof.com/ qui fera ce que vous cherchez pour vous. –

Répondre

1

Utilisez-vous la dernière version de NHibernate? Ceci est l'original task. Ce blog implique qu'il est uniquement pris en charge dans 3.0.

+0

J'utilise actuellement la version 3.1.0.4000 - je ne sais pas si c'est la dernière version, mais semble assez fraîche. –

+0

Voyez-vous une sortie du tout? – Dmitry

+0

Merci pour la contribution Dmitry bien que je ne suis pas tout à fait votre question - la sortie est toujours la même que celle montrée dans le message original pour la version d'assemblage susmentionnée. –

Questions connexes