当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net EF model中的默认值设置

asp.net EF model中的默认值设置

2019年03月29日  | 移动技术网IT编程  | 我要评论

vray安装教程,叶诗文简介,actioncontext

  在做数据库规划时,通常会规划一些系统字段,也就是由数据库本身自行指定默认值到这个字段上,创建新的“创建时间(createdate)”字段就会常常这样设计。

 如果希望能有默认值,且让.net 程序在新增信息到数据库时不用指定的值的话,那么你需要在你的该属性(property)上面加上一个databasegenerated属性(attribute),并传入databbasegeneratedoption.computed参数到databasegenerated 属性中。

在调用databasegenerated属性时记得提前引用命名空间 system.componentmodel.dataannotations, 

system.componentmodel.dataannotations.schema;

具体实现如下:



using system;
using system.collections.generic;
using system.linq;
using system.componentmodel.dataannotations;
using system.componentmodel.dataannotations.schema;
namespace artech.vm.models
{
public class movieinfo
{
     

    [databasegenerated(databasegeneratedoption.computed)]
    public datetime? createdate { get; set; }
}

}


当然当你模型生成成功之后你会看到数据库是没有设置默认值的,因为ef的orm是不支持设置默认值的,要设置的话,也只能手动添加上去,ef今后应该也不会添加此功能,因为为了减少.net 原生对象与数据库数据之间转换的变量,当模型的数据来自于数据库自动生成数据时,就很有可能会导致.net对象状态无法追踪的情况。所以在使用entity framewrok时候是无法指定数据库中的默认值的。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网