Code First 資料庫的表中屬性的配置

2022-09-16 11:03:10 字數 1569 閱讀 4782

預設規則

列的資料型別是由資料庫決定的,sqlserver的預設規則如下

string: nvarchar(max)

int:int

bool:bit

decimal:decimal(18,2)

byte:varbinary(max)

dataannotation

[column(typename=」varchar」)]

fluent

modelbuilder.entity().property(c=>c.name).hascolumntype(「varchar」)

預設規則

maxdataannotation

[maxlength(100)]

[minlength(10)]

[stringlength(50)]

fluent

modelbuilder.entity().property(c=>c.name).hasmaxlength(50)

預設規則

主鍵非空

外來鍵可以為空

int,bit,decimal,datetime非空

varchar,varbiary 可以為空

dataannotation

[required]

fluent

modelbuilder.entity().property(t=>t.name).isrequired()

預設規則

屬性名稱是id,或者是類名稱+id作為主鍵

dataannotation

[key]

fluent

modelbuilder.entity().haskey(c=>c.id)

ef框架要求每個實體都要有主鍵,沒有主鍵會丟擲異常,當你的主鍵是guid時,需要特別處理,dataannotation :[key,databasegenerated(databasegeneratedoption.identity)]

fluent:modelbuilder.entity().porperty(c=>c.id).hasdatabasegeneratedoption(databasegeneratedoption.identity)

只有byte型別的屬性可以對映timestamp

dataannotation:[timespamp]

fluent:modelbuilder.entity().property(c=>c.rowversion).isrowversion()

預設規則

預設為unicode資料

dataannotation

不能配置

fluent

isunicode()

預設規則

(8,2)

dataannotation

不可以設定

fluent

hasprecision(10,2)

預設規則

複雜型別沒有key屬性,用做其他類屬性時,不能用做集合屬性

dataannotation

[complex]

fluent

modelbuilder.complex()

EF使用CodeFirst建立資料庫和表

ef支援三種實體模型 code first,model first和db first,分別表示 優先,模型優先和資料庫優先。目前就個人來說使用codefirst最多,對此相對比較熟悉,先寫下code first的使用吧。那什麼是code first 優先呢?通俗來說,就是先寫好 建立好模型,程式設計...

EF使用CodeFirst建立資料庫和表

ef支援三種實體模型 code first,model first和db first,分別表示 優先,模型優先和資料庫優先。目前就個人來說使用codefirst最多,對此相對比較熟悉,先寫下code first的使用吧。那什麼是code first 優先呢?通俗來說,就是先寫好 建立好模型,程式設計...

通過Code First建立新資料庫

code first建立資料庫的方法十分簡單 易行,先寫好 系統自動生成相應的資料庫框架,讓程式設計師可以更好的物件導向。這次碰到了許多的問題,最主要的乙個問題就是對模型進行更改,當對程式包管理器控制台輸入enable migrations 在尋求多種構建資料模型轉移的方法未果之後,發現了乙個比較合...