微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EF 将加载不同的 DateTime 值

如何解决EF 将加载不同的 DateTime 值

我的域模型 DateTime 属性在直接加载和聚合根加载时不会保持相同的值。

直接加载

_dbcontext.Set<OrderLine>()
  .ToList()

通过 1:m 集合中的聚合根加载

_dbcontext.Set<Order>()
  .Include(x => x.OrderLine)
  .ToList()

问题是,当 EF 加载图形时,它将在单个 sql 中将不同的实体连接在一起。 OrderLine datetime 列将在 Order 行中定义为 NULL datetime2

CAST(NULL AS datetime2)

单独加载 OrderLine 时不会发生这些强制转换(它们不应该发生)

由于日期时间在数据库中被强制转换为 datetime2,因此 EF 框架会将其转换为具有更高进动的日期时间。这是使用两种不同方法加载时 OrderLine.OrderDate 的屏幕截图。

enter image description here

我正在使用 EF6.2“模型优先”和 sql Server 数据类型“datetime”并且无法更改(无法升级到 datetime2)

我试过了

modelBuilder.Entity().Property(x => x.OrderDate).HasPrecision(3);

.. 但这没有效果

也许我可以强制 EF 在不加入的情况下加载图表?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。