You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Access数据库与ADO.NET Entity Data Model在VS2013中协同工作?

嘿,我来帮你搞定这个问题!在VS2013里用Access和ADO.NET Entity Data Model确实有点小坑,但完全可行,给你几个实用的方案:

方案1:通过服务器资源管理器直接生成EDMX

这是最直接的方法,绕开添加.edmx时的选项限制:

  • 打开服务器资源管理器(没显示的话按Ctrl+Alt+S调出)
  • 右键「数据连接」→「添加连接」
  • 在弹出的对话框里,选择「Microsoft Access 数据库文件」,点击「继续」
  • 浏览选中你的Access 2010数据库文件(.accdb格式),测试连接确保能正常访问
  • 连接添加成功后,右键这个连接,选择「生成实体数据模型」
  • 跟着向导走,选择「从数据库生成」,就能创建出对应数据库结构的EDMX文件了
方案2:手动创建空EDMX后配置连接

如果方案1里找不到Access选项,试试这种手动配置的方式:

  • 右键项目→「添加」→「新建项」→ 选择「ADO.NET Entity Data Model」,选「空模型」创建
  • 右键EDMX设计界面→「属性」,找到「连接字符串」,点击旁边的「...」按钮
  • 在连接属性窗口里,选择「Microsoft Access 数据库文件」,配置好你的数据库路径,测试连接后保存
  • 之后你可以手动添加实体,或者右键设计界面→「从数据库更新模型」来同步数据库结构
方案3:用Code First模式(更灵活,推荐课程项目用)

如果你不想依赖EDMX设计器,Code First的方式更轻量化,也更适合快速开发:

  1. 先安装Entity Framework 6:右键项目→「管理NuGet程序包」,搜索EntityFramework并安装
  2. 编写你的实体类,比如:
public class Course
{
    public int CourseId { get; set; }
    public string CourseName { get; set; }
    public int Credit { get; set; }
}
  1. 创建DbContext类来管理数据连接:
using System.Data.Entity;

public class CourseContext : DbContext
{
    public CourseContext() : base("AccessConn")
    {
    }

    public DbSet<Course> Courses { get; set; }
}
  1. 在app.config(或web.config)里添加Access的连接字符串:
<connectionStrings>
  <add name="AccessConn" 
       connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\YourDatabase.accdb;" 
       providerName="System.Data.OleDb" />
</connectionStrings>

小提示:右键你的Access数据库文件→属性→「复制到输出目录」选「如果较新则复制」,这样|DataDirectory|能正确指向输出目录里的数据库文件

关键注意事项
  • 如果你用的是64位系统,一定要把VS的运行目标设为x86:右键项目→属性→生成→平台目标→选x86(因为Access 2010的数据库引擎默认是32位的,64位环境下会兼容报错)
  • 如果连接时提示找不到OLEDB提供程序,去安装Microsoft Access Database Engine 2010 Redistributable,注意要和你的VS位数匹配(32位VS装32位引擎,64位VS装64位引擎)

内容的提问来源于stack exchange,提问作者Olaf Klausson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:38:04