EF框架访问access数据库入门(后附官方推荐“驱动”版本)
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”,添加三个引用,删除一个
using System.ComponentModel.DataAnnotations;//为了后续说明主键[Key]
using EntityFrameworkCore.Jet;
using Microsoft.EntityFrameworkCore;
//using System.Data.Entity;
3、修改模型文件:
删除默认构造函数的参数:
public Model1()
: base()
在模型类中改写dbcontext中的配置方法
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseJet(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\xxx\ConsoleApp1\data\d1.accdb;");
}
描述表结构,用[Key]说明主key
public class T2
{
[Key]
public int xh { get; set; }
public string Name1 { get; set; }
}
4、创建对应的空数据库表(仅结构,表中未设置key)
5、主程序:
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选第三个就会提示迁移。
EF框架访问access数据库入门(后附官方推荐“驱动”版本)的更多相关文章
- Unity访问Access数据库
首先,准备工作: 创建一个Access 数据库,命名AccessTest.accdb,添加一些数据用于测试 准备System.Data.dll与System.EnterpriseServices.dl ...
- Excel中使用VBA访问Access数据库
VBA访问Access数据库 1. 通用自动化语言VBA VBA(Visual Basic For Application)是一种通用自动化语言,它可以使Excel中的常用操作自动化,还可以创建自定义 ...
- C#.NET ORM 如何访问 Access 数据库 [FreeSql]
最近很多 .net QQ 群无故被封停,特别是 wpf 群几乎全军覆没.依乐祝的 .net6交流群,晓晨的 .net跨平台交流群,导致很多码友流离失所无家可归,借此机会使用一次召唤术,有需要的请加群: ...
- ADO访问Access数据库错误解决心得随笔
最近在用ADO访问Access数据库的时候出现了一个奇怪的错误,觉得有必要记录下来,和大家分享一下. 环境 win7 x86系统: VS2012编译器: Office2010: Access2000~ ...
- [转载]Unity3D 访问Access数据库
在开始这个小教程之前呢,其实在网上你已经可以找到相关的资料了,但是我还是要把我自己做练习的一点东西分享出来.写这个教程的主要原因呢,是一个朋友在u3d的官网论坛里,找到了这个demo,但是在他使用的过 ...
- 如何使用.net访问Access数据库 (转)
前言:今天整理程序,看到之前写的一个Demo,也不知道是从哪里参考的了,写到这里,留作备用吧. 使用.net访问Access数据库:1.BL层:新增一个DataAccess类. Code].Defau ...
- vc访问ACCESS数据库
在现代软件开发中,数据库技术被越来越广泛应用,很多项目都存在着大量的数据需要存储,通常都会采用数据库来存储这些数据.最初,数据库厂商推出一个新的数据库产品时,相应的,他会为程序员提供一套访问该数据库的 ...
- Jackcess 1.2.13 发布,Java 访问 Access 数据库
Jackcess 1.2.13 包含新的方法用于在数据库和附件内容解码中查找复杂值类型的关系,修复了 CodeHandler 相关的一些小 bug. Jackcess 是一个Java 类库,用来读写微 ...
- golang ODBC 访问access数据库(问题解决之心理路程)
最近项目需要,需要操作access,以前是用VC++ OLE访问,网络用ACE库,感觉很庞大...决定用go试试 网上用的最多的就是这个https://github.com/weigj/go-odbc ...
随机推荐
- SSHD
SSH基本概述 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定在进行数据传输之前,S ...
- 深度学习VGG16模型核心模块拆解
原文连接:https://blog.csdn.net/qq_40027052/article/details/79015827 注:这篇文章是上面连接作者的文章.在此仅作学习记录作用. 如今深度学习发 ...
- linux安装GD库
首先我们检查GD库是否安装 php -i | grep -i --color gd 安装GD库 yum install php-gd* 安装完成之后配置php.ini文件 extension=gd.s ...
- 微信小程序 wxml 文件中如何让多余文本省略号显示?
废话不多说,之前写小程序碰到了一个问题,如何在 wxml 页面中截取数据? 1.wxs 取数据想必大家都会,不就是 substring 吗?但是这种方法在 wxml 页面中是无效的. 那还有 cs ...
- [转]Introduction - Run Excel Macro using VBScript
本文转自:https://wellsr.com/vba/2015/excel/run-macro-without-opening-excel-using-vbscript/ Have you ever ...
- Android 进程间通讯方式
Android 进程间通讯方式 1.通过单向数据管道传递数据 管道(使用PipedWriter/ 创建PipedReader)是java.io包的一部分.也就是说,它们是一般的Java功能,而不是An ...
- linux学习(三)输入输出重定向和管道功能、cat命令、more命令
目录 输入输出重定向 输出重定向 管道功能 cat命令 more命令 @(输入输出重定向和管道功能) 输入输出重定向 输入重定向可以让用户将某个文件作为输入设备,输出重定向可以把某个文件作为输出设备, ...
- 008.MongoDB分片群集概念及原理
一 MongoDB分片介绍 1.1 分片 Mongodb另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足 ...
- JUC-3-ConcurrentHashMap
ConcurrentHashMap 锁分段机制 JDK1.8
- The Preliminary Contest for ICPC Asia Shenyang 2019
传送门 B. Dudu's maze 题意: 是什么鬼东西???我读题可以读半小时QAQ 给出一张无向图,一个人在里面收集糖果,每个点都有一个糖果,特殊点除外.当他第一次进入特殊点时,会随机往一条边走 ...