vs2017调试通过。
1、添加需要的provider,有点添加驱动的意思。右击项目,NUGET
“浏览”,“JetEntityFrameworkProvider”,安装,如图
完成后配置文件(控制台为app.config)中就会有这个驱动:
最好把项目的生成属性调成“x86”,vs会警告你这个驱动是32位的。
2、在配置文件中给出数据库绝对路径:
建好库,表不用建
3、可以新建个模型文件夹(Model),在其中添加一个实体数据模型,如图:
下图这里我选的第三个
完成后有一个model1.cs,大致内容如下(1还是2不要纠结,2是后抓的图)
4、按需要修改model,我动的结果如下:
说明:t1表示表里的每条记录(编号姓名年龄),T1s表示那张叫“t1”的表,程序通过棕色“name....”的部分找到配置文件里的信息,根据驱动和文件路径对表进行操作,Model1表示你的数据库。到此,你想做什么别的修改,都可以随心所欲了。
5、程序中使用ef框架编程,最简单的示例如下图:
提醒:别忘了using。firstordefault不会用的去学下集合的知识。对了,第一次运行会说数据库没数据。这时候表就给你建好了,你自己进去加点数据就好了。如下图:
_mig....那个图是vs自动加进去的,懒得管它。
运行结果:
增删改查网上大把资料,此处略。
官方推荐驱动(见https://docs.microsoft.com/zh-cn/ef/core/providers/)步骤如下:
1、通过nuget,安装“entityframeworkcore.jet”
2、新建数据模型“空code first”,添加三个引用,删除一个
1 2 3 4 | using System.ComponentModel.DataAnnotations; //为了后续说明主键[Key] using EntityFrameworkCore.Jet; using Microsoft.EntityFrameworkCore; //using System.Data.Entity; |
3、修改模型文件:
删除默认构造函数的参数:
1 2 | public Model1() : base () |
在模型类中改写dbcontext中的配置方法
1 2 3 4 | protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseJet( @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\xxx\ConsoleApp1\data\d1.accdb;" ); } |
描述表结构,用[Key]说明主key
1 2 3 4 5 6 | public class T2 { [Key] public int xh { get ; set ; } public string Name1 { get ; set ; } } |
4、创建对应的空数据库表(仅结构,表中未设置key)
5、主程序:
1 2 3 4 5 6 7 8 9 10 11 | Model1 m1 = new Model1(); var t = new T2(); t.xh = 2; t.Name1 = "张三" ; m1.T2s.Add(t); m1.SaveChanges(); foreach ( var item in m1.T2s) { Console.WriteLine(item.Name1); } Console.ReadKey(); |
6、注意程序生成为x86(跟access驱动一样)。这个东西可以随意修改数据库和类,匹配就好。sqlserver选第三个就会提示迁移。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现