none
El código de usuario no controló TypeInitializationException (EntityFramework) RRS feed

  • Pregunta

  • Hola buenas, quería ver la posibilidad de que me ayudaran con este problema, sucede al momento en que yo consulto cierto dato en la BD con entityframework, la excepción se produce cuando se inicializa la clase de la capa DAL, según yo el error lo podría estar generando el ObjectContext que crea el entityframework, que posee los métodos para la persistencia hacia la base de datos. La versión anterior del proyecto esta corriendo sin problemas, pero esto sucedió cuando actualice el modelo de entidades hecho con ADO.NET, cabe destacar que tengo la cadena de conexion del entity copiada en las capas que hacen uso de esta(Vista, WebService,DAL), y ademas lo mas extraño es que yo hago la autenticacion mediante una consulta a la base de datos y esto si funciona!, pero las demás clases que anteriormente lo hacían, ya no lo hacen. Espero que me puedan ayudar porfavor.

    Saludos

    • Cambiado Karen Malagón viernes, 8 de mayo de 2015 16:04 Entity Framework issue
    viernes, 8 de mayo de 2015 12:32

Todas las respuestas

  • hola

    >>pero esto sucedió cuando actualice el modelo de entidades hecho con ADO.NET

    porque mencionas ado.net ? por modelo entiendo que usas un edmx, pero no entendi que tiene que ver ado.net en esta operacion

    >>la autenticacion mediante una consulta a la base de datos y esto si funciona!, pero las demás clases que anteriormente lo hacían, ya no lo hacen

    puedes obtener cual es el mensaje del error ? y quizas el stacktrace del exception


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 8 de mayo de 2015 14:17
  • porque mencionas ado.net ? por modelo entiendo que usas un edmx, pero no entendi que tiene que ver ado.net en esta operacion

    Lo menciono ya que es la forma en la que genero en modelo de entidades para entity framework

    La excepción es 

    {"Se produjo una excepción en el inicializador de tipo de 'DAL.EntityFramework.FacturaDAL'."}

    Ademas como innerexception sale lo siguiente

    {"No se puede cargar el archivo o ensamblado 'EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' ni una de sus dependencias. La definición del manifiesto del ensamblado no coincide con la referencia al ensamblado. (Excepción de HRESULT: 0x80131040)":"EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"}

    El stacktrace de la excepción es el siguiente

       en DAL.EntityFramework.FacturaDAL..ctor()
       en Negocio.Comunicacion.Comunicacion.comprobarFactura(Int32 idFactura) en c:\Users\igalleguillos\Desktop\HojaRuta\Negocio\Comunicacion\Comunicacion.cs:línea 55
       en HojaRuta.Facturacion.NuevaRuta.comprobarFactura(String idFactura) en c:\Users\igalleguillos\Desktop\HojaRuta\HojaRuta\Facturacion\NuevaRuta.aspx.cs:línea 94

    Saludos y gracias por tu respuesta.

    viernes, 8 de mayo de 2015 14:58
  • hola

    >>No se puede cargar el archivo o ensamblado 'EntityFramework, Version=4.4.0.0

    tienes la referencia a EF en tu proyecto web de webservice ?

    no se de que tipo es la vista, si es web o desktop, si es web el connection string lo debes definir en el webservice o sea en el web.config y podrias intentar agregar la referencia a la dll de EF en ese proyecto

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 8 de mayo de 2015 17:44
  • <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <connectionStrings><add name="RUTASEntities1" connectionString="metadata=res://*/ModeloEntidades.csdl|res://*/ModeloEntidades.ssdl|res://*/ModeloEntidades.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=CHILLAN;initial catalog=RUTAS;persist security info=True;user id=sa;password=Socoal2014;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>
    </configuration>

    Este es mi cadena de coneccion del entityframework, la tengo pegada en el webconfig de mi capa vista web, y en el webservice. El webservice no es el problema, ya que transporta los datos de coneccion del usuario hacia la capa Negocio o Business Layer y luego negocio solicita los datos a mi capa DAL, ahi todo bien, el error viene cuando se consultan otro tipo de entidades, como por ej el que me lanza la excepcion que es FacturaDAL. Intentare referenciar la dll de entityframework nuevamente y comento que sucede.

    Saludos

    viernes, 8 de mayo de 2015 18:32
  • algo no entiendo de la arquitectura que estas creando

    segun lo que planteas seria

    UI Web(aspx) --> Web Service --> negocio --> DAL

    la UI invoca funcionalida del servicio para consumir los datos, no ?

    si es aso porque el stacktrace del error menciona a la clase Comunicacion.cs invocandola directo desde NuevaRuta.aspx eso no seria correcto

    ya que entonces debes tener la referencia de EF en la UI Web

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 8 de mayo de 2015 18:59
  • Voy a contextualizarte un poco en mi arquitectura

    Para la autenticación de usuarios hago uso del webservice en este caso de esta manera

    UI web(aspx) capturo los datos, los derivo al webservice, el webservice solicita a mi capa negocio el metodo de validacion (aqui es donde esta la clase Comunicacion.cs, y la excepcion se produce cuando se inicia la clase de la capa dal, pero como hay un throw en el catch la deriva hasta el lugar donde fue invocado el metodo), luego mi capa negocio solicita a la capa dal que obtenga los datos desde la bd y retorne, quedando de manera resumida:

    aspx->wcf->negocio->dal

    Ahora para solicitar los datos de un documento contable, estoy haciendo esta ruta de solicitudes

    aspx->negocio->dal

    Mi aspx captura el n° de documento que se requiere, invocando al metodo de la capa de negocio, luego esta capa hace el llamado al metodo que obtiene los datos de la bd en dal.

    Saludos y gracias por tus respuestas.

    domingo, 10 de mayo de 2015 20:35