实体框架核心DateTime字段已更新为1/1/0001

时间:2020-04-10 16:55:21

标签: c# sql-server asp.net-core entity-framework-core dbcontext

我正面临与实体框架核心相关的一个问题。我在表中有DateTime字段,如下所示。

表列-datetime2(7)和可为空-False

此列在asp.net核心代码中的Entity上映射到class属性,如下所示。

public DateTime dateCreated { get; set; }

每当我更新(添加没有问题)记录时,表字段就会设置为1/1/0001 12:00 AM。从逻辑上讲,创建日期的字段不应更新。

我尝试更改ModalSnapshot但没有运气

b.Property<DateTime>("dateCreated")
   .HasColumnType("datetime2")
   **.ValueGeneratedNever();**  // Added this line  but there is not effect.

任何人都可以请公会我是什么问题。

先谢谢了。

1 个答案:

答案 0 :(得分:0)

我发现,我们必须在编辑和更新之间保持价值。

当我们从数据库中检索记录以进行编辑时,我们必须将dateCreated值分配给实体字段。对于更新相同,我们必须传递在获取记录时检索到的相同值。

我之所以没有这样做,是因为我假设实体框架会处理它。由于字段不为空,并且字段中已经有值(在添加记录时添加的值)。我期待它不会触及价值。

此行为是由于数据库中的列不为空,如果我们未明确指定,则实体框架会分配默认值1/1/0001 12:00 AM。

//Added this line in get and update method.
//Date created 
Entity               Record from db
entity.dateCreated = entity.dateCreated;

谢谢

相关问题