我正在使用实体框架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. 在实体框架中为实体设置状态的最快方法\ sqlite
- 5. 实体框架默认值
- 6. 实体框架 - 代码优先方法
- 7. 实体框架数据优先 - 无效的对象名称dbo.TableName
- 8. 实体框架 - 混合模型优先和数据库优先的方法?
- 9. 实体框架:数据库优先/代码优先混合
- 10. 实体框架代码优先:插入数据库的NULL值
- 11. 使用DbContext - 实体框架4.1如何为实体设置默认值
- 12. 实体框架代码首先定义数据库名称
- 13. 实体框架代码优先:值不能为空。参数名称:值
- 14. 实体框架中的数据库初始化代码优先
- 15. 实体框架 - 是MS将要删除支持数据库优先方法
- 16. 实体框架将PreserveChanges设置为默认MergeOption
- 17. 实体框架表值函数 - 默认实体映射
- 18. 在实体框架“数据库优先”类中未识别的查找方法
- 19. 实体框架代码第一个默认数据库位置
- 20. 实体框架+优势数据库:UDF
- 21. 实体框架4.0使用数据库默认值
- 22. 实体框架和默认值
- 23. 实体框架默认值SYSDATETIMEOFFSET
- 24. 实体框架4和默认值
- 25. 实体框架 - 为什么显式设置实体状态为修改?
- 26. 使用实体框架代码优先的方法切换数据库
- 27. 实体框架代码优先映射时,名称不匹配
- 28. 实体框架代码优先:如何指定索引名称
- 29. MySql实体框架数据库优先 - 主键=长?
- 30. 实体框架工作数据库优先初始化
{“修改与 '身份' 模式的列不支持的。列:'状态'。表:'lamiModel.Store.finish'。“} 这就是当我尝试上传一个storedGenaratedPattern = Identity时出现异常。你的技巧不起作用 – Akash
我认为该列是只读的,并且由数据库只有 –
其惰性1,但是当它更新为0,所以我得到异常 – Akash