EF使用筆記

  最近寫接口導數據到大數據中心,可是實體數據字段很是多,若是手動去建數據庫表和寫插入語句效率很是低,因此想都試一試EF,效率之高,簡直嚇人,因此此文詳細記錄操做過程以備下次使用時之用。僅需六部就可完成建表,插入數據,下面詳細介紹以下:sql

1、引用EntityFramework數據庫

  使用nuget快速引用EF框架到API項目中,引用成功後能夠看到加入了兩個名爲:EntityFramework,EntityFramework.sqlserver的包,說明引用成功了,第一步搞定。app

2、配置數據庫鏈接字符框架

  在config文件中,添加connectionStrings標籤,而後添加鏈接數據庫的配置,鏈接字符串名爲:DefaultConnection,以下圖:ide

<add name="DefaultConnection" connectionString="Data Source=XXXX;database=XXXX;Uid=XXX;Pwd=XXX;Integrated Security=false;" providerName="System.Data.SqlClient"/>函數

3、添加數據庫關聯實體類sqlserver

  其中appDb():base("name=DefaultConnection")爲構造函數,DefaultConnection爲數據庫鏈接字符串名,保持和第二步一致就行。下面的Admin,AdminRole,AdminAuthorize是三個實體,也即須要建的三個表名。大數據

4、實體類的構建spa

首先引用:命令行

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

  其中能夠自定義表名,用[Table("tablename")],若是不設置則,表名默認爲實體類名,每一個表必須用[key]指定表的主鍵字段,否則在構建migration的時候會報錯。同時若是有主外鍵關聯的表,須要用虛擬泛型函數來處理,如在customer表中,有一個DialogRecord表,則在customer表中須要這麼寫:

   public virtual ICollection<DialogRecord> dialogs  { get; set; }/ /對話消息
 
5、建表
  利用Migration命令在nuget命令行中依次運行如下三個命令:
     (1)Enable-Migrations,構建migration模塊,若是要從新構建,在代碼中刪除該模塊從新輸入該命令便可
  (2)Add-Migration init,初始化migration
  (3)Update-Database,建表
 
6、寫入數據庫
  給數據庫表添加數據,這裏舉例給Admin添加數據,命令以下:
  var db = new AppDb();
  db.Admin.Add(data);//data必須是Admin的對象
  db.SaveChanges();//保存數據
執行sql語句:db.Database.SqlQuery<XY_Hospital>("select * from XY_Hospital").ToList()

經過以上六步就完成了整個過程,包括建表,寫入數據庫操做,很是簡單快捷,固然增刪改查也能夠,這裏只寫了寫入操做。

相關文章
相關標籤/搜索