Foros del Web » Programación para mayores de 30 ;) » .NET »

C# NHibernate y db en FoxPro 9

Estas en el tema de C# NHibernate y db en FoxPro 9 en el foro de .NET en Foros del Web. Estoy haciendo una prueba para trabajar desde c# .net con bases de datos de foxpro 9 utilizando NHibernate. El archivo de configuración es el siguiente: ...
  #1 (permalink)  
Antiguo 08/03/2012, 11:25
 
Fecha de Ingreso: agosto-2007
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
Exclamación C# NHibernate y db en FoxPro 9

Estoy haciendo una prueba para trabajar desde c# .net con bases de datos de foxpro 9 utilizando NHibernate.

El archivo de configuración es el siguiente:

Código:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <reflection-optimizer use="false" />
    <session-factory>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="dialect">NHibernate.Dialect.GenericDialect</property>
      <property name="connection.driver_class">NHibernate.Driver.OleDbDriver</property>
      <property name="connection.connection_string">Provider=VFPOLEDB;Data Source="C:\db_fox";Collating Sequence=general;Exclusive=false;Nulls=false</property>
      <property name="show_sql">false</property>
      <mapping assembly="Business.Entity" />
    </session-factory>
  </hibernate-configuration>
El mappeo Usuario.hbm.xml es:

Código:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Business.Entity" assembly="Business.Entity">
  <class name="Usuario" table="usuarios">
    <id name="id" column="id" type="int">
      <generator class="identity"/>
    </id>
    <property name="User" column="user" not-null="true" type="string">
    </property>
  </class>
</hibernate-mapping>
Y la entidad es:

Código:
namespace Business.Entity
{
    public class Usuario
    {
        private int _id;
        public virtual int id
        {
            get { return _id; }
            set { _id = value; }
        }
        
        private string _User;
        public virtual string User
        {
            get { return _User; }
            set { _User = value; }
        }
    }
}
Ahora cuando quiero ejecutar recuperar todos los registros de la tabla
usuarios ejecuto lo siguiente:

Código:
ISessionFactory sessionFactory = new 
Configuration().Configure().BuildSessionFactory(); 
ISession session = sessionFactory.OpenSession(); 
var usuarios = session.CreateQuery("from Usuario").List<Usuario>(); 
session.Close();
De esta manera funciona, pero si quiere traer un dato en particular ya
sea por id o por user (de la siguiente manera):

I
Código:
SessionFactory sessionFactory = new 
Configuration().Configure().BuildSessionFactory(); 
ISession session = sessionFactory.OpenSession(); 
IQuery query = session.CreateQuery("from Usuario where user = :user"); 
query.SetParameter("user", "xAnubiSx"); 
Usuario usuario = query.UniqueResult<Usuario>();  <- se produce la excepción 
session.Close();

la excepción que se produce es la siguiente:
Código:
could not execute query
[ select usuario0_.id as id0_, usuario0_.user as user0_ from usuarios usuario0_ where user=? ]
  Name:user - Value:xAnubiSx
[SQL: select usuario0_.id as id0_, usuario0_.user as user0_ from usuarios usuario0_ where user=?]
y el trace:
Código:
   en NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)
   en NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters)
   en NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)
   en NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader.List(ISessionImplementor session, QueryParameters queryParameters)
   en NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor session, QueryParameters queryParameters)
   en NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters queryParameters, ISessionImplementor session, IList results)
   en NHibernate.Impl.SessionImpl.List(String query, QueryParameters queryParameters, IList results)
   en NHibernate.Impl.SessionImpl.List(String query, QueryParameters parameters)
   en NHibernate.Impl.QueryImpl.List()
   en NHibernate.Impl.AbstractQueryImpl.UniqueResult()
   en NHibernate.Impl.AbstractQueryImpl.UniqueResult[T]()
   en Business.Data.UsuarioAdapter.GetUsuario() en C:\Documents and Settings\Usuario\Mis documentos\Visual Studio 2005\Projects\NHibernateExample\Business.Data\UsuarioAdapter.cs:línea 24
   en Business.Logic.Usuarios.GetUsuario() en C:\Documents and Settings\Usuario\Mis documentos\Visual Studio 2005\Projects\NHibernateExample\Business.Logic\Usuarios.cs:línea 15
   en NHibernateExample.Program.Main(String[] args) en C:\Documents and Settings\Usuario\Mis documentos\Visual Studio 2005\Projects\NHibernateExample\NHibernateExample\Program.cs:línea 15
   en System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
   en System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   en Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   en System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   en System.Threading.ThreadHelper.ThreadStart()
No pude encontrar cual es el problema, ya que en MySql y MsSql
funcionan correctamente.

Saludos

Etiquetas: c#, foxpro9, nhibernate
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:43.