EF Core 2.2查询为可空列生成WHERE IS null

时间:2019-09-30 08:56:33

标签: c# .net .net-core entity-framework-core

我有一个包含三列的表。客户ID为空。

public class ProductType
{
    public int Id { get; set; }

    public string Name { get; set; }

    public long? ClientId { get; set; }
}

当我运行以下代码时:

public async Task GetClientType(string productTypeName, long clientId)
        {
            var clientResult = await (from productType in context.ProductType
                                      where productType.Name == productTypeName
                                            && productType.ClientId == clientId
                                      select productType).FirstOrDefaultAsync();


            .......
        }

尽管数据库包含此查询的结果,但我没有得到任何结果。 然后,我检查了EF Core生成的查询,发现生成了以下内容:

SELECT TOP(1) [productType].[Id], [productType].[Name], [productType].[ClientId]
FROM [ProductType] AS [productType]
WHERE [productType].[ClientId] IS NULL AND (([productType].[Name] = 'test client') AND ([productType].[ClientId] = 1))

我可以看到问题出在Where子句中。为什么会产生此语句?

0 个答案:

没有答案