EF Code First 如何定义字段的默认值?

aday 2014-10-02 12:20:51
使用的是EF 6.0,采用Data Annotations的下列两种方式都效果,不知道还有没有别的书写方式?

方式1:

public partial class MyModel
{
[DefaultValue(0)]
public int Field1 { get; set; }
}


方式2:

public partial class MyModel
{
public MyModel
{
Field1 = 0;
}
public int Field1 { get; set; }
}


如果采用Fluent API,该如何定义默认值呢?
...全文
8304 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jetable 2014-10-22
  • 打赏
  • 举报
回复
Fluent API方式可以看1楼的链接
jetable 2014-10-19
  • 打赏
  • 举报
回复

public partial class MyModel
{
    [DefaultValue(0)]
    public int Field1 { get; set; }
}
这种写法没用吧,DefaultValue只是用来给控件拖入UI编辑器用的默认值。 如果你需要的默认值是在入库时写入的值,那可以在字段的get方法上做手脚,判断值为null的话就给它你要的默认值。同样,从库获取数据时在set方法上做手脚,为null时给它默认值。当然,这个只是在程序中转换默认值而已,不会对数据库字段定义起作用的。要想字段定义默认值,那就要用flunt api方式定义了。
aday 2014-10-19
  • 打赏
  • 举报
回复
引用 5 楼 jetable 的回复:

public partial class MyModel
{
    [DefaultValue(0)]
    public int Field1 { get; set; }
}
这种写法没用吧,DefaultValue只是用来给控件拖入UI编辑器用的默认值。 如果你需要的默认值是在入库时写入的值,那可以在字段的get方法上做手脚,判断值为null的话就给它你要的默认值。同样,从库获取数据时在set方法上做手脚,为null时给它默认值。当然,这个只是在程序中转换默认值而已,不会对数据库字段定义起作用的。要想字段定义默认值,那就要用flunt api方式定义了。
非常感谢,解释得太到位了,原来DefaultValue是给UI定义的,终于明白了 而且还学到了第二种set方式 第三种定义字段默认值方式(Fluent API)请问要如何写呢?
aday 2014-10-13
  • 打赏
  • 举报
回复
折腾了好几天,无果,放弃了,EF Code First只是个定义,最终还是使用SQL来建表,多么痛的使用
aday 2014-10-08
  • 打赏
  • 举报
回复
How can set a default value constraint with Entity Framework 6 Code First? http://stackoverflow.com/questions/20136504/how-can-set-a-default-value-constraint-with-entity-framework-6-code-first Unfortunately the answer right now is 'No'. But you can vote for Better support for default values 答案是不支持?
wangweimutou 2014-10-07
  • 打赏
  • 举报
回复
这个 我只用过 第一种呢
宝_爸 2014-10-02
  • 打赏
  • 举报
回复
没用过,找到两个讨论,看看那有没有用 How can set a default value constraint with Entity Framework 6 Code First? http://stackoverflow.com/questions/20136504/how-can-set-a-default-value-constraint-with-entity-framework-6-code-first EntityFramework Code First FluentAPI DefaultValue in EF6.X http://stackoverflow.com/questions/20199382/entityframework-code-first-fluentapi-defaultvalue-in-ef6-x

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧