我可以将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;