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 ...
随机推荐
- LeetCode 3: 无重复字符的最长子串 Longest Substring Without Repeating Characters
题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. Given a string, find the length of the longest substring withou ...
- lombok深入实践
官网视频 官网地址:https://projectlombok.org 官网的首页视频演示在eclipse中如何使用Lombok; Project Lombok is a java library t ...
- ubuntu18.04 安装 WPS 2019
ubuntu自带的文字处理软件对来自windows下office或在WPS创建的ppt有点不兼容,看到WPS有linux版本的,便果断安装试一试. 一.卸载原生liboffice sudo apt-g ...
- ASP.NET Core 2.2 WebApi 系列【一】搭建ASP.NET Core WebApi项目
一.步骤 从“文件”菜单中选择“新建”>“项目” . 选择“ASP.NET Core Web 应用程序”模板,再单击“下一步” . 将项目命名为 NetCoreWebApi,然后单击“创建” . ...
- API统一管理平台-YApi
前言:开发过程中,会产生很多接口对接操作,这个时候可能需要一个接口管理平台管理已经开发好的接口方便业务对接. 一.概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员 ...
- vue非父子关系之间通信传值
第一种方法: 通过给vue实例添加自定义属性 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...
- Spring高级注解
目录: 1.使用限定注解:2.自定义限定注解:3.自定义bean的生命周期: 开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2.1.8新建一个名称为demo的Spr ...
- Windows 7下Node.js Web开发环境搭建笔记
Node.js是什么? 我们看看百科里怎么说的?JavaScript是一种运行在浏览器的脚本,它简单,轻巧,易于编辑,这种脚本通常用于浏览器的前端编程,但是一位开发者Ryan有一天发现这种前端式的脚本 ...
- linux服务器下oracle开机自启动设置
1.首先切换到Oracle用户 [oracle@oracletest ~]$ cd /u01/app/oracle/product/11.2.0/db_1/bin/ -----标红字体部分 ...
- Redis分布式锁的实现原理
原文链接:https://mp.weixin.qq.com/s/y_Uw3P2Ll7wvk_j5Fdlusw