2013-08-30 178 views
0

我有一个运行Nhibernate的VS 2012解决方案。我有一个会话管理器,映射文件和一个简单的respority与下面的方法。nhibernate不查询数据库

public User GetUser()  
    { 
     ISession session = SessionManager.OpenSession(); 
     User user = session.Query<User>().First(); 

     return user; 
    } 

但是...如果我调用该方法,没有结果从查询(同时有在DB数据)返回......我的映射文件等被部署到bin文件夹。

映射文件:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> 
    <class name="Main.Objects.User,Main.Objects"> 
    <id name="Id"> 
     <generator class="guid.comb" /> 
    </id> 
    <property name="UserName"/> 

    </class> 
</hibernate-mapping> 

休眠配置:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory name=""> 
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
    <property name="dialect">NHibernate.Dialect.MySQL5Dialect</property> 
    <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property> 
    <property name="connection.connection_string">Server=localhost;Database=DB;uid=root;pwd=root</property> 
    <mapping assembly="Main.Objects"/> 
    </session-factory> 
</hibernate-configuration> 

基本用户类:

public class SYUser 
    { 
     public virtual Guid Id { get; set; } 

     public virtual string UserName { get; set; } 
    } 

的映射和休眠配置文件是在数据库中的特定类库查询是在另一个和另一个对象以及...所以3类库

任何想法?

+0

旁边的事实,你应该使用'using'构造,你需要提供更多的细节。有很多事情可能是错误的。 – BartoszKP

+0

编辑了更多信息 – user2713516

+1

也许你可以在'session-factory'部分添加' true'来查看发出了什么查询,如果有的话? – BartoszKP

回答

1

那么我得到了数据检索的工作,我改变了几件事情,其中​​一件事是方言(MySQL而不是MySQL)的外壳。这实在是太慢了,虽然......已经寻找到后来:)至少现在一切工作:)

  • 忘记在映射文件扩展名.hbm以及
+0

是的,.hbm作为嵌​​入式资源是问题! –