預設規則
列的資料型別是由資料庫決定的,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 在尋求多種構建資料模型轉移的方法未果之後,發現了乙個比較合...