zoukankan      html  css  js  c++  java
  • MVC 捋一遍(3)

    Seed方法接收一个database context参数,利用这个参数添加新的实体到数据库中。

    对每个实体类型:

    新建一个实体集合

    添加到相应的DbSet属性

    保存更改到数据库中

    执行 add-migration时,同样在Migrations文件夹里面,产生一个<timestamp>_InitialCreate.cs的文件。

    里面两个方法,Up和Down: Up方法创建数据库表,Down方法删除表。

    enable-migrations 和 add-migration InitialCreate

    在项目根目录下创建了一个Migrations文件夹

    在Migrations文件夹下新建一个Configuration.cs文件。

    可以通过修改Configuration.cs来对Migration做一些配置(如加入一些测试数据等)

    使用Code First Migrations方式,当数据库改变时测试数据会保留,所以Seed方法一般来说是不需要的。

    在一个表中添加属性 需要用Code First Migrations 方式更新数据库

    添加 public DateTime CreateDate { get; set; }

    增加完之后及时使用Code First Migrations 方式更新数据库。(不然运行时会报contex和database不一致的错误)

    执行add-migration AddTestTable和update-database, 完成数据库表的添加。表名为(Test)

    add-migration AddCreateDateToSysUser,update-database,完成数据库表中元素的添加。元素名为(CreateDate)

    所以最重要的是:启用迁移(enable-migrations) 和 执行迁移(add-migration 。。, update-database)

    启用迁移:产生迁移相关文件夹Migrations和文件夹中相关的配置文件。

    执行迁移:产生相关的迁移更改文件并执行更改。


    限制显示具体时间格式

    DataType 属性用来指定更加具体的数据类型,DataType枚举值提供了一些常见的类型,比如Date,Time,EmailAddress等。

    但是DataType不能指定数据类型的显示格式,例如日期要什么格式显示。

    默认情况下显示格式会根据电脑的设定显示。

    这个时候就需要配合使用DisplayFormate属性来指定格式。

    [DisplayFormat(DataFormatString="{0:yyyy-MM-dd}",ApplyFormatInEditMode=true)]

    StringLength 指定数据验证规则以及出错信息

    StringLength属性设置了数据库中存储字段的最大长度,为程序提供客户端和服务器端的验证。同样用这个属性也可以指定最小长度,不过不影响数据库的结构。

    同样更新下数据库 (不然会出错)

    add-migration MaxLengthOnNames

    update-database

    然后还要在controller中加一个判断不然还是会报错 if(ModelState.IsValid)

    还要在Create.cshtml中增加一个Helper:ValidationMessageFor用来显示验证信息

    Column (我感觉用的很少)

    有时会有这么一种情况,我们Model中的字段和数据库中表的字段要用不同的命名。例如我们Model中命名为UserName,数据库表中命名为LoginName.

    同样运行更新指令。

    add-migration ColumnLoginName
    update-database

    对某一些类型来说不需要使用Required, 例如DateTime, int,double,float,Display因为这些值类型不能被赋予空值,因此他们天生就具有Required的特性。
    直接update-database 就可以看到效果了

    Lazy, Eager, and Explicit Loading of Related Data (不懂什么意思)

    有三种方式EF可以加载关联数据到一个实体的navigation属性中

    MVC Html.AntiForgeryToken() 防止CSRF攻击

    http://blog.csdn.net/cpytiger/article/details/8781457这个比较有意思

    Model验证总结 @Html.ValidationSummary(true) http://blog.csdn.net/wybshyy/article/details/52064253 里面有常用的正则表达式验证

  • 相关阅读:
    常用方法 反射常见方法
    常用方法 字符串是否是中文
    常用方法 读取 Excel的单位格 为 日期格式 的数据
    常用方法 保证数据长度相同
    常用方法 简单缓存
    P1821 [USACO07FEB]银牛派对Silver Cow Party
    P3905 道路重建
    关于宏定义
    P3512 [POI2010]PIL-Pilots
    P2398 GCD SUM
  • 原文地址:https://www.cnblogs.com/wwr01/p/7994283.html
Copyright © 2011-2022 走看看