context.Table
.Where(d => d.col1 == null || d.col1 == value1)
&& d.Active == true)
生成的 DbQuery 删除了
d.col1 == null
并仅使用 d.col1 = 'value1'
。
不确定 EF Core 8 是否遗漏了任何内容。
期望查询应该使用
d.col1 = null OR d.col1 = value1
放在这里,帮助别人。
问题不在于 EF Core 8,而在于我的模型。
早期房产:
public string Col1 {get; set;}
所以,当我运行查询时:
context.Table.Where(d => d.col1 == null || d.col1 == value1) && d.Active == true)
它生成:
t.col1 == 'values1'
.
这曾经在旧的 EF Core 3 中工作,但我认为它已经改变了,现在,我必须在我的模型中专门指定可为 null 的字段。我觉得这是一个值得欢迎的变化,尽管我被它咬伤了。
房产后:
public string? Col1 {get; set;}
有效。
数据库查询:
t.col1 == 'value1' OR t.col1 IS NULL