如何在 EF Core 中对可能为 Null 的字段执行 ToLower?

问题描述 投票:0回答:1

我第一次尝试在 C# 中使用不可为空的功能。

我有一个这样的 EF 模型

public class TestTable
{
   public int Id {get; set;}
   public string? Name {get; set;}
} 

现在我想搜索“Name”,但我不关心大小写

context.TestTable.Where(x => x.Name.ToLower() == "bob").ToList();

当然,它给了我可能为空的警告。

我不知道在这种情况下该怎么办。在所有可能的情况下,我想我可以使用“!”因为这个字段在数据库中实际上应该是“非空”,但无论出于何种原因它被标记为“可为空”并且在数据库中更改它会涉及太多人。

虽然这确实给了我一个很好的机会来了解如果该列确实是一个可为空的列该怎么办,但我需要对其进行“tolower”操作,你该怎么做?

首先检查是否不为空?

c# entity-framework
1个回答
0
投票

在 EF 中的可空字段上添加 Lowercase 函数之前,请务必验证它是否不为空。你可以使用这样的东西来获得想要的结果:

var result = context.TestTable
    .Where(x => x.Name != null && x.Name.ToLower() == "bob")
    .ToList();
© www.soinside.com 2019 - 2024. All rights reserved.