实体框架 - 查询精度

3
非常类似于这个问题:为什么Entity Framework将以NUMERIC(19)定义的列作为DECIMAL(5,0)传递参数?,然而,给出的答案似乎与我的结果不符。我有一个列 OrderEntryTimeUtc datetime2(0),该表在其上进行分区。 现在,为了实际使用分区,我需要我的查询使用相同的类型和精度。但是,当我创建我的 where 子句时:
o.OrderEntryTimeUtc > dateStart

当dateStart是一个毫秒部分设置为0的DateTime时,我得到了以下生成的参数:

@p__linq__2 datetime2(7)
@p__linq__2='2016-05-21 23:44:33'

我该如何强制EF发送datetime2(0)?或者如何在不必写整个SQL查询或创建视图的情况下向我的查询添加CONVERT

1个回答

0

你可以使用 modelBuilder

modelBuilder.Entity<YourEntity>()
    .Property(p => p.OrderEntryTimeUtc)
    .HasColumnType("datetime2")
    .HasPrecision(0);

你试过这个吗?它不会改变查询参数的精度。 - Gert Arnold
@Massanu:不幸的是,这并不改变查询,只是改变了列。但如果可以改变查询的话,这会更有意义。 - Troels Larsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接