【问题标题】:How can I use Entity Framework Code First with an existing MS Access (.accdb) database?如何将 Entity Framework Code First 与现有的 MS Access (.accdb) 数据库一起使用?
【发布时间】:2013-07-02 04:37:54
【问题描述】:

我关注了this MVC 4 tutorial,,但在让控制器从我现有的数据库中读取数据时遇到了问题。

我已经改变了我的控制器来覆盖这样的构造函数:

public ItemDBContext()
        : base("dbName")
    {
    }

但是当我在调试时尝试访问 /Items 路由时,我得到了这个错误:

Unable to find the requested .Net Framework Data Provider.  It may not be installed.


Line 19:         public ActionResult Index()
Line 20:         {
Line 21:             return View(db.Items.ToList());
Line 22:         }

这是我的连接字符串:

<add name="dbName" connectionString="Data Source=C:\dbName.accdb; Jet OLEDB:Database Password=passWord;" providerName="Microsoft.ACE.OLEDB.12.0"/>

我不确定我到底哪里出错了。我正在尝试将我创建的模型映射到预先存在的数据库,但我不知道如何使用 MS Access 数据库进行操作。

【问题讨论】:

  • 你有什么版本的访问权限?
  • 我实际上没有 MS Access;只是一个数据库。不过,我很确定这是 2007 年。

标签: asp.net asp.net-mvc ms-access visual-studio-2012


【解决方案1】:

您收到此消息的原因是 .Net 不知道如何打开 DB 文件,因为您没有在运行 ASP.NET 代码的服务器计算机上安装 MS-Access。

你有两个选择。

安装 MS-Access 20007(它将包括“Microsoft.ACE.OLEDB.12.0”的驱动程序) 或仅从此处下载并安装 Access DB 引擎 (http://www.microsoft.com/en-us/download/details.aspx?id=13255)

【讨论】:

  • 我已经安装了 MS Access 2007 数据库引擎。您链接了我刚刚安装的 2010 版本,但我仍然遇到同样的问题。
【解决方案2】:

没有适用于 Microsoft Access 的实体框架提供程序。

如果您想使用便携式数据库进行测试,我建议使用 Sql Server CE 4.0 或 SQLite,两者都有 EF 提供程序。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 2011-07-14
  • 2011-06-27
  • 1970-01-01
相关资源
最近更新 更多