如何将Entity Framework Code First与现有的MS Access(.accdb)数据库一起使用?

时间:2013-07-02 04:37:55

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

我已经关注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数据库。

2 个答案:

答案 0 :(得分:1)

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

您有两种选择。

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

下载并安装Access数据库引擎

答案 1 :(得分:1)

Microsoft Access没有实体框架提供程序。

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