存储日期每当我试图创建一个新用户的CreateAsync抛出一个异常,其中的InnerException是: "The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.\r\nThe statement has been terminated."
此错误打开了超过100个类似的查询,但大多比较据我所知,与我的情况相关的是老的和没有的。 中的SQLExpress数据库的字段定义为无法在身份DB asp.net核心和EF
[DOB] [datetime] NULL,
起初我试图存储在“ApplicationUser”模式有效的20世纪的日期。该字段在模型中定义:
[Required)]
public DateTime DOB { get; set; }
我读了这个问题的原因,许多文章和无法找到一个解决方案,因此要想继续发展,我决定只是忽略它暂时和将该字段设置为空并继续。所以我改变了定义ApplicationUser
到
[Column("DOB",TypeName = "datetime")]
public Nullable<DateTime> DOB { get; set; }
,并在控制器将其设置为null
硬编码的值忽略所提供的值。但问题依然存在。问题可能是什么?
任何帮助非常感谢。
您是否尝试过流利的api? –
我不确定你的意思。除了在Startup中配置服务以使用SQL和Identity之外,我创建的唯一其他东西是'ApplicationUser',它扩展了'IdentityUser'。其他的一切都由UserManager管理。我确实想知道Identity使用EF的定义文件在哪里,但我认为所有这些都是自动发生的。我应该直接指出'ApplicationUser'的字段存储在数据库中的位置吗?除了这个日期之外,它似乎已经很好地完成了所有这一切。 –
我的意思是,如果你试图用你的实体为身份DbContext添加配置并且流利的api –