MVC+EF之Attribute

一、常用Attribute
DataType,DisplayFormate
1.打开ModelsàSysUser.cs
2.添加 public DateTime CreateDate { get; set; }
3.增加完之后及时使用Code First Migrations 方式更新数据库。(不然运行时会报contex和database不一致的错误)
Note:
注意把Migrations\ Configuration.cs中Seed方法中内容注释掉,因为
模型变了,插入示例数据时会报一个错误。
运行 add-migration AddCreateDateToSysUser,update-database即可更新
更新后随便在数据库中插入两个日期值。
Code First Migrations 方式更新数据库详细做法参加上篇文章。
接着修改Views\Account\Index.cshtml,把创建日期显示出来
4.在foreach中添加
<td>
@Html.DisplayFor(modelItem=>item.Department.Name)
</td>
默认显示的日期显示到具体时间而我们需要的是显示年月日就行了
5.在Models->SysUser.cs中添加
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString="{0:yyyy-MM-dd}",ApplyFormatInEditMode=true)]
{0:yyyy-MM-dd}:显示的具体格式
二、StringLength属性
StringLength属性设置了数据库中存储字段的最大长度,为程序提供客户端和服务器端的验证。同样用这个属性也可以指定最小长度,不过不影响数据库的结构。
在models->SysUser.cs中添加
[StringLength (10,ErrorMessage ="名字不能超过10个字。")]
当输入超过十个字符是会提示错误
三、Column
这个属性也非常实用。有时会有这么一种情况,我们Model中的字段和数据库中表的字段要用不同的命名。例如我们Model中命名为UserName,数据库表中命名为LoginName.
在models->SysUser.cs中添加
[Column("LoginName")]      同样运行更新指令(add-migration  ColumnLoginNameupdate-database)。打开数据库可以看到UserName已经变成LoginName了。
可以将多个属性写在一块用逗号隔开,例如:
[Column("FirstName"),Display(Name = "First Name"),StringLength(50, MinimumLength=1)]

猜你喜欢

转载自blog.csdn.net/xueer_z/article/details/81572162