一直想看看這部分內容,今天終於看到了。 vs2017調試通過。 記錄如下: 1、添加需要的provider,有點添加驅動的意思。右擊項目,NUGET “瀏覽”,“JetEntityFrameworkProvider”,安裝,如圖 完成後配置文件(控制台為app.config)中就會有這個驅動: 最好 ...
一直想看看這部分內容,今天終於看到了。
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驅動一樣)