我正在使用實體框架5.0,我在後端數據庫中將Status
列的默認值設置爲1。但插入新記錄時,默認情況下,它會爲status
列生成0。我想1
如由在數據庫中設置默認值,但實體框架是將其更改爲0。將默認值1設置爲實體框架中的實體名稱(狀態)數據庫優先方法
0
A
回答
0
您必須打開edmx
文件,並選擇相應的實體Status
財產。然後按F4
顯示Property-View
。您必須爲StoreGeneratedPattern
選擇Identity
。 Itentity
表示數據庫生成INSERT
上的值,但不生成UPDATE
上的值。
0
如果以通過Entity Framework以外的方式插入記錄,或者如果要在已包含記錄的表上創建新的非空列,則在數據庫中設置默認值非常有用。 在代碼首先,你可以在一個指定遷移的數據庫默認:
public override void Up()
{
AddColumn("dbo.Foos", "Status", c => c.Integer(nullable: false, defaultValue: 1));
}
C#的默認值設置整數爲零,這就是爲什麼實體框架的覆蓋數據庫。
因此,您也將在你的實體類設置的默認值,如果它是不是該類型的默認:
//partial is only necessary in Database First
public partial class Foo
{
private int _Status = 1;
public int Status
{
get{ return _Status; }
set{ _Status = value; }
}
}
...或者,如果你喜歡的構造函數初始化:
public partial class Foo
{
public Foo()
{
Status = 1;
}
public int Status { get; set; }
}
...,如果您使用的是C#6.0:
public partial class Foo
{
public int Status { get; set; } = 1;
}
相關問題
- 1. 實體框架與數據庫優先
- 2. 實體框架:設置回默認值
- 3. 實體框架更改我的默認數據庫名稱
- 4. 實體框架數據庫中的代碼優先默認數據
- 5. 在實體框架中爲實體設置狀態的最快方法\ sqlite
- 6. 實體框架默認值
- 7. 實體框架5.0數據庫優先方法
- 8. 實體框架 - 代碼優先方法
- 9. 實體框架數據優先 - 無效的對象名稱dbo.TableName
- 10. 實體框架代碼優先 - 非空類型的默認值
- 11. 禁用實體框架的默認值生成(代碼優先)
- 12. 實體框架:手動設置實體狀態還原值
- 13. 實體框架 - 混合模型優先和數據庫優先的方法?
- 14. 實體框架:數據庫優先/代碼優先混合
- 15. 實體框架,數據庫優先還是模型優先?
- 16. 實體框架代碼優先:插入數據庫的NULL值
- 17. 實體框架4.3代碼優先數據庫命名
- 18. 實體框架5重命名 - 數據庫優先
- 19. 實體框架7數據庫優先配置(MVC 6)
- 20. 實體框架數據庫優先配置
- 21. 使用DbContext - 實體框架4.1如何爲實體設置默認值
- 22. 實體框架代碼首先定義數據庫名稱
- 23. 如何爲實體框架代碼優先設置數據庫連接?
- 24. 實體框架代碼優先:值不能爲空。參數名稱:值
- 25. 使用實體框架4.3爲模型設置默認值
- 26. 實體框架模型優先和數據庫優先模型設計
- 27. 實體框架 - 是MS將要刪除支持數據庫優先方法
- 28. 實體框架將PreserveChanges設置爲默認MergeOption
- 29. 無法遷移實體框架中的AspNetUser實體.NET代碼優先方法
- 30. 實體框架表值函數 - 默認實體映射
{「修改與 '身份' 模式的列不支持的。列:'狀態'。表:'lamiModel.Store.finish'。「} 這就是當我嘗試上傳一個storedGenaratedPattern = Identity時出現異常。你的技巧不起作用 – Akash
我認爲該列是隻讀的,並且由數據庫只有 –
其惰性1,但是當它更新爲0,所以我得到異常 – Akash