C# 不能等于实体框架数据的“&”

本文关键字:数据 amp 框架 不能 于实体 实体 | 更新日期: 2023-09-27 17:55:42

public int getPartijId(string naam)
    {
        Partij partij = null;
        try
        {
            partij = repository.Partij.Single<Partij>(p => p.naam.Equals(naam));
        }
        catch (InvalidOperationException)
        {
        }
        return partij.partijID;
    }

我想通过比较数据库中的名称与 linq 语句来从我们的数据库中获取某个值 (CD&V),但我得到了一个空值......

对于其余值,此方法有效,但我怀疑问题是名称/字符串中的"&"

C# 不能等于实体框架数据的“&”

也许试试你的Partij仓库是否都是partijen

partij = repository.Partij.First(p => p.naam.Equals(naam));

据我所知,代码返回 null 的唯一方法是匹配对象上的partijID为 null。

其他选项会引发空引用异常

Partij partij = null;
try
{
    // this may throw an exception because there may be more or less than one item matching your predicate
    partij = repository.Partij.Single<Partij>(p => p.naam.Equals(naam));
}
catch (InvalidOperationException)
{
    // this is hiding that exception
}
// this will throw another null reference exception because the first call didn't actually set the partij variable
return partij.partijID;

附言捕获异常然后完全忽略它几乎从来都不是一个好主意。

你的桌子是如何设计的?naam 字段是否具有唯一的约束?您是否 100% 确定在 naam 字段中只有一行值为"CD&V"?我的猜测是你得到了多行,然后吞下异常,所以 partij 保持空。

异常消息到底是什么?

partijID 在数据库中实际上是空的吗?