代码之家  ›  专栏  ›  技术社区  ›  onefootswill

DbContext在创建对象图时更改存储在数据库中的日期

  •  1
  • onefootswill  · 技术社区  · 6 年前

    这个问题现在是一个好奇心,比什么都重要。约会将是我的终结。

    使用EF 6。

    我在同一个http请求中存储了一个日期和时间,将对象从数据库中拉回来。

    当我查看EF发送的SQL时,返回的有问题日期的毫秒数与存储在db中的毫秒数相同(预期行为)。

    所以,我保存“2018-10-16 21:46:22.293”

    EF反序列化到2018-10-16 21:46:22.294!

    我创建了一个解决方法,通过使用原始ADO.NET查询来访问db,该查询可以获得准确的日期('2018-10-16 21:46:22.293')。

    更奇怪的是,如果我使用一个新的DbContext并用它抓住整个对象,日期就可以了,即“2018-10-16 21:46:22.293”

    有人见过这种奇怪的行为吗?有比原始SQL(ado.net)或新的DbContext更好的修复方法吗?

    干杯

    1 回复  |  直到 6 年前
        1
  •  1
  •   Alistair Findlay    6 年前

    您可以通过附加 .AsNoTracking() 你的检索查询。