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