9.1 翻譯系列:數據註解特性之----Table【EF 6 Code-First 系列】

原文地址:http://www.entityframeworktutorial.net/code-first/table-dataannotations-attribute-in-code-first.aspxhtml

 

EF 6 Code-First系列文章目錄:數據庫

 

 

Table特性能夠應用於一個領域類上面,用來在數據庫中生成相應名稱的數據表。它重寫了EF 6和 EF Code 中默認的約定,根據默認約定,EF 6和EF Core建立的表的名稱是實體名稱+s(或者es),而且建立的數據表的列名稱和實體屬性名稱同樣。app

Table Attribute: [Table(string name, Properties:[Schema = string])ide

name:數據表的名稱測試

Schema:數據庫的模式名稱【可選的】ui

在上面的例子中,Table特性應用於Student實體上。因此,EF將會重寫默認的約定,而且建立名稱爲StudentMaster的數據表,而不是名稱爲Students的數據表,例如:spa

 

使用Schema 屬性來指定數據表的模式名稱:.net

EF將會建立StudentMaster表,而且指定表的模式名爲Admin:翻譯

 

好了,理論介紹完了,咱們動手實踐一下:code

1.建立一個控制檯應用程序,名稱爲:EFAnnotationTable

2.安裝EF:【install-package entityframework -version 6.2.0】

 

 3. 建立一個Student類:

 public class Student { public int StudentID { get; set; } public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } }

4.建立一個上下文類EFDbContext:【base中的name=後面名稱要和SQL鏈接字符串名稱同樣。】

public class EFDbContext:DbContext { public EFDbContext() : base("name=Constr") { } public DbSet<Student> StudentTable { get; set; } }

5.配置文件中配置鏈接字符串:

 <connectionStrings>
    <add name="Constr" connectionString="Server=.;Database=EFAnnotationTableDB;uid=sa;pwd=Password_1" providerName="System.Data.SqlClient"/>
  </connectionStrings>

6.測試程序:

 class Program { static void Main(string[] args) { using (var db = new EFDbContext()) { List<Student> lstStuModel= db.StudentTable.ToList(); } Console.WriteLine("success"); Console.ReadKey(); } }

運行程序:【出現success字樣,說明已經生成數據庫和數據表成功了!】

咱們看一下數據庫:

 

 這就是EF默認爲咱們生成的數據表,能夠看到,表名稱默認是實體名稱+s後綴。

如今咱們使用數據註解:修改一下Student實體:

 

 運行以前,咱們須要先手動刪除一下剛纔生成的數據庫和數據表。由於這裏我沒有啓用數據庫遷移技術。

能夠看到生成的表名是:StudentInfo了。如今咱們使用數據註解,指定一下表的模式名稱:

算了,我仍是修改一下代碼:省得每次測試都要手動刪除數據庫。【PS:這裏直接運行就會報下圖錯誤:】

咱們改一下:上下文類的代碼,

 

而後運行:

 

成功了,咱們看下數據庫:

看到了麼,模式名,變成了咱們設定的My.好了,這一篇數據註解之Table,就介紹完了,你們有不明白的能夠留言,我會一一回復,謝謝支持!

相關文章
相關標籤/搜索