Migração para NHibernate
12/07/2011
0
Bom dia,
estou começando a migrar para NHibernate, mas ao realizar a consulta não está retornando nada, mesmo tendo dados.
Web.Config.
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<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=ei101;User ID=root;Password=manager</property>
<!--<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>-->
<!--<mapping resource="PCO_Modelo.Cliente_EN.hbm.xml" assembly="PCO_Modelo" />-->
</session-factory>
</hibernate-configuration>
Conexao
public static ISession CriarConexao()
{
// Sem servidor de DAO remoto
NHibernate.Cfg.Configuration config = new NHibernate.Cfg.Configuration();
config.SetProperty(NHibernate.Cfg.Environment.Hbm2ddlKeyWords, "none");
config.Configure();
ISessionFactory factory = config.BuildSessionFactory();
ISession session = factory.OpenSession();
return session;
}
Cliente
List<Cliente_EN> clientes = new List<Cliente_EN>();
using (ISession session = Conexao.CriarConexao())
{
clientes = (List<Cliente_EN>)session.CreateCriteria(typeof(Cliente_EN)).List<Cliente_EN>();
}
Cliente_EN.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="PCO_Modelo" namespace="PCO_Modelo">
<class name="Cliente_EN" table="CLIENTE">
<id name="ClienteId" column="ClienteId" type="Int32">
<generator class="assigned" />
</id>
<property name="RazaoSocial" column= "Razao_Social" type="AnsiString" />
<property name="NomeFantasia" column= "Nome_Fantasia" type="AnsiString" />
</class>
</hibernate-mapping>
O Objeto clientes está ficando vazio, modifiquei o nome do banco de dados e deu erro, então significa que está funcionando a conexão com o banco de dados. Modifiquei o nome da tabela e não deu erro, não. Coloquei o arquivo de XML com a propriedade Embedded Resource.
O que pode ser este problema, está conectando no banco de dados, mas não está realizando a consulta?
estou começando a migrar para NHibernate, mas ao realizar a consulta não está retornando nada, mesmo tendo dados.
Web.Config.
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<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=ei101;User ID=root;Password=manager</property>
<!--<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>-->
<!--<mapping resource="PCO_Modelo.Cliente_EN.hbm.xml" assembly="PCO_Modelo" />-->
</session-factory>
</hibernate-configuration>
Conexao
public static ISession CriarConexao()
{
// Sem servidor de DAO remoto
NHibernate.Cfg.Configuration config = new NHibernate.Cfg.Configuration();
config.SetProperty(NHibernate.Cfg.Environment.Hbm2ddlKeyWords, "none");
config.Configure();
ISessionFactory factory = config.BuildSessionFactory();
ISession session = factory.OpenSession();
return session;
}
Cliente
List<Cliente_EN> clientes = new List<Cliente_EN>();
using (ISession session = Conexao.CriarConexao())
{
clientes = (List<Cliente_EN>)session.CreateCriteria(typeof(Cliente_EN)).List<Cliente_EN>();
}
Cliente_EN.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="PCO_Modelo" namespace="PCO_Modelo">
<class name="Cliente_EN" table="CLIENTE">
<id name="ClienteId" column="ClienteId" type="Int32">
<generator class="assigned" />
</id>
<property name="RazaoSocial" column= "Razao_Social" type="AnsiString" />
<property name="NomeFantasia" column= "Nome_Fantasia" type="AnsiString" />
</class>
</hibernate-mapping>
O Objeto clientes está ficando vazio, modifiquei o nome do banco de dados e deu erro, então significa que está funcionando a conexão com o banco de dados. Modifiquei o nome da tabela e não deu erro, não. Coloquei o arquivo de XML com a propriedade Embedded Resource.
O que pode ser este problema, está conectando no banco de dados, mas não está realizando a consulta?
Bruno Batista
Curtir tópico
+ 0
Responder
Posts
15/07/2011
Bruno Batista
estou migrando o sistema, e agora me deparei com o seguinte problema,
uma Classe possui vários itens de outras classes, e estou tendo
problema.
Exemplo: Uma pessoa possui vários telefones, sendo que tenho o cadastro de telefone, e um telefone pode ser de outra pessoa.
Tenho uma tabela para o cadastro de pessoa, uma tabela para cadastro de telefone, e uma tabela que liga as duas tabelas.
Na tabela de ligação possui três campos, um campo sequencial (chave primária), um campo para pessoa e um campo para telefone.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="PCO_Modelo.Pergunta_EN, PCO_Modelo" table="PERGUNTA">
<id name="PerguntaId" column="PerguntaId" type="Int32">
<generator class="assigned" />
</id>
<property name="Nome" column="Nome" type="AnsiString" />
<property name="_objetiva" column="Objetiva" type="AnsiChar" access="field" />
<property name="_obrigatoria" column="Obrigatoria" type="AnsiChar" access="field" />
<property name="Comentario" column="Comentario" type="AnsiString" />
<property name="_adicionarComentario" column="ADICIONAR_COMENTARIO" type="AnsiChar" access="field" />
<property name="_obrigatorioAdicionarComentario" column="OBRIGATORIO_ADICIONAR_COMENTARIO" type="AnsiChar" access="field" />
<many-to-one name="GrupoPergunta" column="GrupoPerguntaID" class="PCO_Modelo.GrupoPergunta_EN, PCO_Modelo"/>
<list name="ItensPergunta" table="ITEM_PERGUNTA_PERGUNTA" lazy="false" cascade="all">
<key column="ItemPerguntaPerguntaId" />
<many-to-many class="PCO_Modelo.ItemPerguntaPergunta_EN, PCO_Modelo" column="ItemPerguntaPerguntaID"/>
</list>
</class>
</hibernate-mapping>
Desta maneira está solicitando a tag index.
Como que ficaria
Exemplo: Uma pessoa possui vários telefones, sendo que tenho o cadastro de telefone, e um telefone pode ser de outra pessoa.
Tenho uma tabela para o cadastro de pessoa, uma tabela para cadastro de telefone, e uma tabela que liga as duas tabelas.
Na tabela de ligação possui três campos, um campo sequencial (chave primária), um campo para pessoa e um campo para telefone.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="PCO_Modelo.Pergunta_EN, PCO_Modelo" table="PERGUNTA">
<id name="PerguntaId" column="PerguntaId" type="Int32">
<generator class="assigned" />
</id>
<property name="Nome" column="Nome" type="AnsiString" />
<property name="_objetiva" column="Objetiva" type="AnsiChar" access="field" />
<property name="_obrigatoria" column="Obrigatoria" type="AnsiChar" access="field" />
<property name="Comentario" column="Comentario" type="AnsiString" />
<property name="_adicionarComentario" column="ADICIONAR_COMENTARIO" type="AnsiChar" access="field" />
<property name="_obrigatorioAdicionarComentario" column="OBRIGATORIO_ADICIONAR_COMENTARIO" type="AnsiChar" access="field" />
<many-to-one name="GrupoPergunta" column="GrupoPerguntaID" class="PCO_Modelo.GrupoPergunta_EN, PCO_Modelo"/>
<list name="ItensPergunta" table="ITEM_PERGUNTA_PERGUNTA" lazy="false" cascade="all">
<key column="ItemPerguntaPerguntaId" />
<many-to-many class="PCO_Modelo.ItemPerguntaPergunta_EN, PCO_Modelo" column="ItemPerguntaPerguntaID"/>
</list>
</class>
</hibernate-mapping>
Desta maneira está solicitando a tag index.
Como que ficaria
Responder
Clique aqui para fazer login e interagir na Comunidade :)