none
cadena de conexion entity framework RRS feed

  • Pregunta

  • Buenas tardes

        Soy nuevo en C#, y tengo un problema, tengo una BD en SQL, y estoy haciendo un programa que se conecte a la BD y obtenga algunos datos (no todos) de una tabla, especificamente una tabla con los datos de la empresa, este proyecto lo cree tipo dll y con ef.  Hice una prueba y trabaja todo bien; luego compile mi solucion, cree mi dll y en otra solucion hice la referencia a mi dll anterior, primero me arrojo el error de que la cadena de conexion no existia, la copie del proyecto inicial, y funciono, todo bien hasta aqui.  Mi problema radica en que necesito manipular la cadena de conexion que utiliza el ef, para cambiar usuario, clave, bd, proveedor, ya que establezco la conexion a la BD, segun el usuario que esta logeado, es decir si entra el usuario "aperez", la cadena seria algo como: data source=SQL;initial catalog=BD;persist security info=True;user id=aperez;password=1234;MultipleActiveResultSets=True;App=EntityFramework, si entra administrador: data source=SQL;initial catalog=BD;persist security info=True;user id=admin;password=1234;MultipleActiveResultSets=True;App=EntityFramework; esto debe ocurrir en tiempo de ejecucion, pero no se como cambiar la cadena de conexion antes que ef cargue la BD, gracias de antemano.

    miércoles, 10 de octubre de 2012 20:12

Respuestas

  • primero me arrojo el error de que la cadena de conexion no existia

    pues claro con referenciar la dll sola si esta usa EF dentro no alcanza, debes llevar tamben la configuracion al app.config de la aplicacion que usara esa dll

    seguramente debas llevar el tag de connectionstrings

    ya que establezco la conexion a la BD, segun el usuario que esta logeado, es decir si entra el usuario "aperez", la cadena seria algo como

    nooo, eso no se hace nunca se defne un uniso usuario si quieres usa seguridad integrada de windows, pero cambiar la conexion de esa forma es una pesima idea

    de ultima si lo vs a hacer solo es cuestion de editar con el notepad el .config luego que haces el deploy en la pc del usuario

    pero la verdad ese camino para anda recomendable

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Marlos E. Gomez jueves, 11 de octubre de 2012 16:59
    jueves, 11 de octubre de 2012 3:43

Todas las respuestas

  • primero me arrojo el error de que la cadena de conexion no existia

    pues claro con referenciar la dll sola si esta usa EF dentro no alcanza, debes llevar tamben la configuracion al app.config de la aplicacion que usara esa dll

    seguramente debas llevar el tag de connectionstrings

    ya que establezco la conexion a la BD, segun el usuario que esta logeado, es decir si entra el usuario "aperez", la cadena seria algo como

    nooo, eso no se hace nunca se defne un uniso usuario si quieres usa seguridad integrada de windows, pero cambiar la conexion de esa forma es una pesima idea

    de ultima si lo vs a hacer solo es cuestion de editar con el notepad el .config luego que haces el deploy en la pc del usuario

    pero la verdad ese camino para anda recomendable

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Marlos E. Gomez jueves, 11 de octubre de 2012 16:59
    jueves, 11 de octubre de 2012 3:43
  • Gracias por tu repuesta, ya en tiendo un poco mas el concepto, como te comente soy nuevo, te pregunto otra cosa, hasta lo que he leido hay 2 formas de manipular datos: 1.- EF que es facil, rapida pero no muy flexible al realizar aplicaciones, y la otra es ADO.NET, donde me da mas libertad.  He visto varios ejemplos donde crean clases muy parecidas a las que crea el EF, llamadas programacion en N capas, donde crean una capa de entidad, datos, negocio, etc.; si quisiera trabajar con ADO.net, esta filosofia de crear capas se aplica tambien en ADO, o se maneja de esta forma:

    string connectionString = "Data Source=(local);Initial Catalog=Northwind;" + "Integrated Security=true"; // Provide the query string with a parameter placeholder.string queryString = "SELECT ProductID, UnitPrice, ProductName from dbo.products " + "WHERE UnitPrice > @pricePoint " + "ORDER BY UnitPrice DESC;"; .....

    Gracias nuevamente por su tiempo...
    jueves, 11 de octubre de 2012 16:58