EF實體框架之CodeFirst一

2021-09-09 02:10:33 字數 2685 閱讀 5134

上面瞎逼逼半天,實際上今天是想大致演示下code first的用法,做簡單的增刪改查。

一、model

首先是建立了乙個控制台應用程式efcodefirstdemo,又建立了乙個存放model的類庫efcodefirstmodels,以及乙個與資料庫有關係的類庫efcodefirstdataaccess,算是三層架構中的dal,至於bll先不建立,只是簡單的演示。既然是code first,管理物件,那肯定要先有乙個model類,這裡在efcodefirstdemo中定義了乙個student類。在student類中使用約定定義stuid為主鍵,由於缺省會把id結尾的屬性作為主鍵,所以不用特性也可以。

using

system;

using

system.collections.generic;

using

system.componentmodel.dataannotations;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

efcodefirstmodels

public

string name

public

int age

public student(string stuid, string name, int

age)

//定義無引數的建構函式主要是因為在通過dbset獲取物件進行linq查詢時會報錯

//the class 'efcodefirstmodels.student' has no parameterless constructor.

public

student() }}

二、dbcontext資料庫上下文

dbcontext資料庫上下文,定義了從實體物件到資料庫的對映,從資料庫中檢索資料,就要使用它。

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

using system.data.entity;

using efcodefirstmodels;

using system.configuration;

namespace

efcodefirstdataaccess

public dbsetstudents }}

在使用dbcontext時要先通過nuget新增entityframework,在類中引入system.data.entity,

像上面的**中我們給dbcontext指定了資料庫連線字串,名字是mystrconn,我們可以看下dbcontext類的建構函式.

我們也可以不使用connectionstring,而是直接複製資料庫名,它會先找配置檔案對於的連線字串,如果未找到,則以它自己命名。

三、簡單操作

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

using

efcodefirstmodels;

using

efcodefirstdataaccess;

namespace

efcodefirstdemo

console.readline();}}

}

在上面**中,主要是先新增乙個student物件然後插入資料庫,列印輸出此時的name,然後通過資料庫上下文找到stuid=0001的學生,將name更改為cyw,

儲存到資料庫再次列印資料name,從列印結果我們可以看到name最後是cyw,資料庫中最後的結果也是cyw。通過profiler也能檢視到sql執行的過程。

EF實體框架之CodeFirst八

前面七篇基本把code first學習了一下,不過code first中會出現乙個問題,就是資料遷移的問題。一 資料準備 還是在前面的demo上修改,這次使用province和city類。public class province public string provincename public ...

EF 分離實體

具體步驟 新建測試專案 如圖 其中respository和model層均為類庫專案,1.在respository層新增ado.net實體資料模型,2.複製model.tt檔案到model層,這是會發生乙個錯誤不用理會它,開啟model.tt檔案,修改const string inputfile mo...

EF實體配置

ef 有 中的模型類的配置有 dataannotations fluentapi 兩種 1.dataannotations 實體類屬性上標註attribute 必填字段標註 required 字段長度 maxlength 5 用 可空字段用 int?如果欄位在資料庫有預設值,則要在屬性上標註 dat...