EF使用笔记
最近寫接口導(dǎo)數(shù)據(jù)到大數(shù)據(jù)中心,但是實(shí)體數(shù)據(jù)字段非常多,如果手動(dòng)去建數(shù)據(jù)庫表和寫插入語句效率非常低,所以想都試一試EF,效率之高,簡(jiǎn)直嚇人,所以此文詳細(xì)記錄操作過程以備下次使用時(shí)之用。僅需六部就可完成建表,插入數(shù)據(jù),下面詳細(xì)介紹如下:
一、引用EntityFramework
使用nuget快速引用EF框架到API項(xiàng)目中,引用成功后可以看到加入了兩個(gè)名為:EntityFramework,EntityFramework.sqlserver的包,說明引用成功了,第一步搞定。
二、配置數(shù)據(jù)庫連接字符
在config文件中,添加connectionStrings標(biāo)簽,然后添加連接數(shù)據(jù)庫的配置,連接字符串名為:DefaultConnection,如下圖:
<add name="DefaultConnection" connectionString="Data Source=XXXX;database=XXXX;Uid=XXX;Pwd=XXX;Integrated Security=false;" providerName="System.Data.SqlClient"/>
三、添加數(shù)據(jù)庫關(guān)聯(lián)實(shí)體類
其中appDb():base("name=DefaultConnection")為構(gòu)造函數(shù),DefaultConnection為數(shù)據(jù)庫連接字符串名,保持和第二步一致就行。下面的Admin,AdminRole,AdminAuthorize是三個(gè)實(shí)體,也即需要建的三個(gè)表名。
四、實(shí)體類的構(gòu)建
首先引用:
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
其中可以自定義表名,用[Table("tablename")],如果不設(shè)置則,表名默認(rèn)為實(shí)體類名,每個(gè)表必須用[key]指定表的主鍵字段,不然在構(gòu)建migration的時(shí)候會(huì)報(bào)錯(cuò)。同時(shí)如果有主外鍵關(guān)聯(lián)的表,需要用虛擬泛型函數(shù)來處理,如在customer表中,有一個(gè)DialogRecord表,則在customer表中需要這么寫:
public?virtual?ICollection<DialogRecord>?dialogs ?{?get;?set;?}/ /對(duì)話消息 五、建表 利用Migration命令在nuget命令行中依次運(yùn)行以下三個(gè)命令: (1)Enable-Migrations,構(gòu)建migration模塊,如果要重新構(gòu)建,在代碼中刪除該模塊重新輸入該命令即可(2)Add-Migration?init,初始化migration
(3)Update-Database,建表 六、寫入數(shù)據(jù)庫 給數(shù)據(jù)庫表添加數(shù)據(jù),這里舉例給Admin添加數(shù)據(jù),命令如下: var db = new AppDb(); db.Admin.Add(data);//data必須是Admin的對(duì)象 db.SaveChanges();//保存數(shù)據(jù) 執(zhí)行sql語句:db.Database.SqlQuery<XY_Hospital>("select * from XY_Hospital").ToList()
通過以上六步就完成了整個(gè)過程,包括建表,寫入數(shù)據(jù)庫操作,非常簡(jiǎn)單快捷,當(dāng)然增刪改查也可以,這里只寫了寫入操作。
?
轉(zhuǎn)載于:https://www.cnblogs.com/marso/p/8638493.html
總結(jié)
- 上一篇: 装饰器带参数
- 下一篇: 简单实现一边固定,另一边自适用