EF框架訪問access數據庫入門(後附官方推薦「驅動」版本)

vs2017調試經過。sql

一、添加須要的provider,有點添加驅動的意思。右擊項目,NUGET數據庫

  

  「瀏覽」,「JetEntityFrameworkProvider」,安裝,如圖編程

  

  完成後配置文件(控制檯爲app.config)中就會有這個驅動:app

最好把項目的生成屬性調成「x86」,vs會警告你這個驅動是32位的。框架

二、在配置文件中給出數據庫絕對路徑:ide

建好庫,表不用建函數

三、能夠新建個模型文件夾(Model),在其中添加一個實體數據模型,如圖:sqlserver

  

  下圖這裏我選的第三個ui

 

完成後有一個model1.cs,大體內容以下(1仍是2不要糾結,2是後抓的圖)3d

四、按須要修改model,我動的結果以下:

說明:t1表示表裏的每條記錄(編號姓名年齡),T1s表示那張叫「t1」的表,程序經過棕色「name....」的部分找到配置文件裏的信息,根據驅動和文件路徑對錶進行操做,Model1表示你的數據庫。到此,你想作什麼別的修改,均可以爲所欲爲了。

五、程序中使用ef框架編程,最簡單的示例以下圖:

提醒:別忘了using。firstordefault不會用的去學下集合的知識。對了,第一次運行會說數據庫沒數據。這時候表就給你建好了,你本身進去加點數據就行了。以下圖:

_mig....那個圖是vs自動加進去的,懶得管它。

運行結果:

增刪改查網上大把資料,此處略。

 


 官方推薦驅動(見https://docs.microsoft.com/zh-cn/ef/core/providers/)步驟以下:

一、經過nuget,安裝「entityframeworkcore.jet」

二、新建數據模型「空code first」,添加三個引用,刪除一個

using System.ComponentModel.DataAnnotations;//爲了後續說明主鍵[Key]
using EntityFrameworkCore.Jet;
using Microsoft.EntityFrameworkCore;
//using System.Data.Entity;

  

三、修改模型文件:

刪除默認構造函數的參數:

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; }
}

  

四、建立對應的空數據庫表(僅結構,表中未設置key)
五、主程序:

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();

  

六、注意程序生成爲x86(跟access驅動同樣)。這個東西能夠隨意修改數據庫和類,匹配就好。sqlserver選第三個就會提示遷移。

相關文章
相關標籤/搜索