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

时间:2014-11-13 23:35:09

标签: c# sql-server entity-framework entity-framework-6

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

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

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

1 个答案:

答案 0 :(得分:8)

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

context.Configuration.UseDatabaseNullSemantics = true;