如何解决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 的屏幕截图。
我正在使用 EF6.2“模型优先”和 sql Server 数据类型“datetime”并且无法更改(无法升级到 datetime2)
我试过了
modelBuilder.Entity().Property(x => x.OrderDate).HasPrecision(3);
.. 但这没有效果。
也许我可以强制 EF 在不加入的情况下加载图表?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。