c# - 具有 OleDB 连接的 Entity Framework - 我只是疯了吗?

标签 c# entity-framework ms-access

我正在试验 Entity Framework ,我想连接到 Access 2007 数据库。

以下代码的灵感来自 http://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnection.connectionstring.aspx

我怀疑我搞错了......

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 告诉我它不支持 DataSource 属性。我可以很好地连接 ADO.net,所以我知道路径和提供程序是正确的。

这是完全错误的方法吗?

最佳答案

您用来构建 EF 连接字符串的方法是正确的。

但是...

Entity Framework 只与支持提供者服务的提供者(即 SqlClient)一起工作。

OleDB 提供程序不支持“提供程序服务”,因此您不能将 EF 与 OleDb 一起使用(除非您可以找到支持 EF 的第三方 OleDb 提供程序)。

希望对你有帮助

亚历克斯

( Entity Framework 团队,微软)

关于c# - 具有 OleDB 连接的 Entity Framework - 我只是疯了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1132720/

相关文章:

c# - MSDTC 事务被提升为分布在事务范围外执行的查询上

C# List<string> 添加索引以列出控制台输出

c# - 如何将 dll 配置文件添加到添加 dll 作为引用的项目中?

ms-access - 将直通查询中的记录追加到本地表

mysql - 通过 MS Access 97 进行 VBA 数据库更新时出现问题,记录锁定违规?

c# - TextBlock 上的 TiltEffect

entity-framework - Entity Framework 4.1 代码优先 : How is the Discriminator determined?

c# - 为什么表达式在 linq 中不起作用

c# - 按键表达式存储静态过滤器

ms-access - 从 Access DB 中提取 OLE 对象(word 文档)