sistema prenomina net microsoft libreria evolucion epass datos datasets conexion c# entity-framework ms-access

prenomina - libreria ado c#



Entity Framework con conexión OleDB: ¿estoy loco? (4)

No estoy seguro de que tengas un extremo del palo. :)

Mira este ejemplo en su lugar. Puede haber otros problemas con su código, pero parece que está configurando la propiedad ConnectionString del generador de entidades cuando necesita establecer su propiedad ProviderConnectionString (entre otras propiedades).

Me parece que para algo llamado "generador de cadenas de conexión", la propiedad ConnectionString debe ser de solo lectura (no lo es). Supongo que también pretende ser un analizador de cadenas de conexión.

Editar: Acabo de ver tu código nuevamente, y creo que todo lo que tienes que hacer es cambiar ConnectionString a ProviderConnectionString. ¡Puede tener el palo después de todo!

Estoy experimentando con Entity Framework y quiero conectarme a una base de datos de Access 2007.

El siguiente código está inspirado en http://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnection.connectionstring.aspx

Sospecho que tengo el extremo equivocado ...

OleDbConnectionStringBuilder oledbConn = new OleDbConnectionStringBuilder(); oledbConn.DataSource = @"../../../../Pruebas.accdb"; //yep Access 2007! EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder (); entityBuilder.Provider = "Microsoft.ACE.OLEDB.12.0"; entityBuilder.ConnectionString = oledbConn.ToString(); EntityConnection ec = new EntityConnection(entityBuilder.ToString()); ec.Open(); ec.Close();

EntityConnectionStringBuilder me dice que no es compatible con la propiedad DataSource. Me puedo conectar bien con ADO.net, así que sé que la ruta y el proveedor son correctos.

¿Es este el enfoque completamente equivocado?


Para construir su cadena de conexión cree un archivo en su escritorio llamado a.udl

Haga doble clic en él, debería abrir una interfaz de usuario. Sigue al asistente, prueba la conexión.

A continuación, cierre la interfaz de usuario, abra el archivo con el bloc de notas, y tiene su cadena de conexión.

EDITAR Es posible que reciba este error porque le falta una referencia. Entity Framework usa métodos de extensión. Por lo tanto, podría compilarse pero aún no funcionar.


El enfoque que está utilizando para construir la cadena de conexión EF es correcto.

PERO...

Entity Framework solo funciona con proveedores (es decir, SqlClient) que admiten algo llamado servicios de proveedor.

El proveedor OleDB no es compatible con ''Servicios del proveedor'', por lo que no puede usar EF con el OleDb (a menos que pueda encontrar un proveedor OleDb de terceros con soporte para EF).

Espero que esto ayude

Alex

(Entity Framework Team, Microsoft)


Probablemente, OleDb no funciona con EF, pero la inicialización funciona bien si configura entityBuilder y oledbConn de esta manera.

OleDbConnectionStringBuilder oledbConn = new OleDbConnectionStringBuilder(); oledbConn.Provider = "Microsoft.Jet.OLEDB.4.0"; oledbConn.DataSource = @"C:/Users/Utente/Documents/visual studio 2013/Projects/How to implement the1/Debug/Test.mdb"; EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(); entityBuilder.Provider = "System.Data.EntityClient"; string connectionString = string.Format("metadata=res://*/School.csdl|res://*/School.ssdl|res://*/School.msl;provider=System.Data.OleDb;provider connection string=''{0}''", oledbConn); entityBuilder.ConnectionString = connectionString; EntityConnection ec = new EntityConnection(entityBuilder.ToString()); ec.Open(); ec.Close();