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選第三個就會提示遷移。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM