具体的错误原因是:C#中的DateTime类型比SqlServer中的datetime范围大。SqlServer的datetime有效范围是1753年1月1日到9999年12月31日,如果超出这个范围,EF就会把datetime转换为datetime2,但在数据库的映射类型还是datetime类型,从而出现该异常。
try:
把你的edmx中的ProviderManifestToken设置成2005,这样entityframework就会默认转化成datetime了。
结果不成功
try:
C#中的Datetime返回和sqlserver中Datetime的方位不一致,C#中的范围较广,将数据库字段类型设为datetime2即可
结果不成功
try:
未在edmx文件中设置对应表字段的属性,在edmx文件中找到对应的字段,将属性StoreGeneratedPattern设置为Identity即可
结果不成功
我也是犯了同样的一个错误就是没有初始化一个时间的字段造成的,初始化之后就好了!