C# 实体框架-查询中的精度

C# 实体框架-查询中的精度,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,与这个问题非常相似: 然而,给出的答案似乎与我的结果不符 我有一个列,OrderEntryTimeUtc datetime2(0),在该列上对表进行分区。现在,为了实际使用分区,我需要查询使用相同的类型和精度 但当我创建where子句时: o.OrderEntryTimeUtc > dateStart 其中dateStart是ms部件设置为0的DateTime,我得到以下生成的参数: @p__linq__2 datetime2(7) @p__linq__2='2016-05-21 23:

与这个问题非常相似:

然而,给出的答案似乎与我的结果不符

我有一个列,
OrderEntryTimeUtc datetime2(0)
,在该列上对表进行分区。现在,为了实际使用分区,我需要查询使用相同的类型和精度

但当我创建where子句时:

o.OrderEntryTimeUtc > dateStart
其中dateStart是ms部件设置为0的DateTime,我得到以下生成的参数:

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

如何强制EF发送
日期时间2(0)
?或者,如何在不必用SQL编写整个查询或创建视图的情况下将
转换
添加到查询中?

您可以使用modelBuilder

modelBuilder.Entity<YourEntity>()
    .Property(p => p.OrderEntryTimeUtc)
    .HasColumnType("datetime2")
    .HasPrecision(0);
modelBuilder.Entity()
.Property(p=>p.OrderEntryTimeUtc)
.HasColumnType(“日期时间2”)
.精度(0);

您尝试过这个吗?它不会改变查询参数的精度。@Massanu:不幸的是,这不会改变查询,只会改变列。但如果真是这样的话,那就更有意义了。