zoukankan      html  css  js  c++  java
  • asp.net EF model中的默认值设置

      在做数据库规划时,通常会规划一些系统字段,也就是由数据库本身自行指定默认值到这个字段上,创建新的“创建时间(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时候是无法指定数据库中的默认值的。
  • 相关阅读:
    第15次Scrum会议(10/27)【欢迎来怼】
    C语言--第三周作业评分和总结(5班)
    例行报告(20171020-20171025)
    MongoDB主从复制
    副本集
    MongoDB索引
    聚合框架
    MongoDB查询操作
    MongoDB增删改
    MongoDB基本安装
  • 原文地址:https://www.cnblogs.com/yiliuyang/p/4253264.html
Copyright © 2011-2022 走看看