Scaffolder创建DATETIME而不是DATE,即使数据注释明确设置为DATE也是如此

本文关键字:DATE 设置 注释 DATETIME 创建 Scaffolder 数据 | 更新日期: 2023-09-27 18:25:55

我遇到了一个麻烦,当我在模型中使用数据注释将数据类型设置为DATE时,MVC架子工将数据库中的数据类型设置成DATETIME。有什么线索吗?

[DataType(DataType.Date)]
public DateTime? my_date { get; set; }

我使用的是VS2012,MVC 4.5。

谢谢!

Scaffolder创建DATETIME而不是DATE,即使数据注释明确设置为DATE也是如此

我相信DataTypeAttribute只有在字段的UI表示方面才有意义(例如,当使用辅助方法DisplayForEditorFor时)。

引用MSDN(亮点是我的):

DataTypeAttribute属性允许您通过使用比数据库内部类型更具体的类型来标记字段。例如,包含电子邮件地址的字符串数据字段可以使用EmailAddress类型进行属性设置字段模板可以访问此信息,并修改数据字段的处理方式

似乎没有引用实际使用的数据库类型。

编辑:Fluent Mapping

显然,EF还可以为给定的属性设置DataType:msdn.microsoft.com/en-us/data/jj591617.aspx#1.10。老实说,我从来没有用过它,所以如果你想用你的发现来调查和编辑这个答案,那就太好了!:)