问题描述
我的域模型 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 (将#修改为@)