zoukankan      html  css  js  c++  java
  • 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:xxxConsoleApp1datad1.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选第三个就会提示迁移。

  • 相关阅读:
    关于爬虫中常见的两个网页解析工具的分析 —— lxml / xpath 与 bs4 / BeautifulSoup
    纯手工打造简单分布式爬虫(Python)
    原创python:windows解决genymotion appium adb 的问题。
    安装appium桌面版和命令行版
    Appium+Python 自动化appium常用元素定位方法
    python selenium 对浏览器标签页进行关闭和切换
    安装scrapy框架出错的解决
    PyCharm的基本快捷键和配置简介
    python正则表达式详解
    Python多进程库multiprocessing中进程池Pool类的使用
  • 原文地址:https://www.cnblogs.com/wanjinliu/p/11072744.html
Copyright © 2011-2022 走看看