我可以将UseCSharpNullComparisonBehavior用于单个查询吗?

我有一个查询,曾经是一个存储过程,并转换为EF查询。 现在是时候了。 使用SQL事件探查器,我可以看到生成的SQL的唯一区别是新的行为,其中EF将entity.Property == value into (entity.Property = @value OR (@value IS NULL AND entity.Property IS NULL))

我知道我可以通过设置UseCSharpNullComparisonBehavior = false关闭整个上下文,但我真的只想为这一个查询执行此操作。 那可能吗?

或者,有没有办法编写EF查询,所以它不会像这样生成SQL?

您可以将上下文的UseDatabaseNullSemantics属性设置为true 。 这基本上与旧的ObjectContext.UseCSharpNullComparisonBehavior属性相反。

 context.Configuration.UseDatabaseNullSemantics = true;