C#Linq-我将如何应用过滤器,使其无法进行自身比较

C#Linq-我将如何应用过滤器,使其无法进行自身比较,c#,linq,entity-framework-6,C#,Linq,Entity Framework 6,我正在做一个项目,我想更新区域表的名称列。更新时,我想验证数据库中是否有相同的区域。Name可用,但在搜索/比较时,它不应与自身进行比较。我提出了下面的查询,它搜索数据库列区域的所有值。Name,但不能跳过自身的比较 public bool IsDuplicateArea(string areaName) { return db.Areas.Where(a => a.Name == areaName).Any(); } 其中areaName包含我要

我正在做一个项目,我想更新
区域
表的
名称
列。更新时,我想验证数据库中是否有相同的
区域。Name
可用,但在搜索/比较时,它不应与自身进行比较。我提出了下面的查询,它搜索数据库列
区域的所有值。Name
,但不能跳过自身的比较

    public bool IsDuplicateArea(string areaName)
    {
        return db.Areas.Where(a => a.Name == areaName).Any();
    }
其中
areaName
包含我要在数据库中更新的区域的名称


任何人都知道我该如何应用过滤器,以使其无法进行自身比较吗?

传递列的ID并按如下方式进行检查

public bool IsDuplicateArea(string areaName, int Id)
{
    return db.Areas.Where(a => a.Name == areaName && a.Id != Id).Any();
}

传递列的ID并按如下方式进行检查

public bool IsDuplicateArea(string areaName, int Id)
{
    return db.Areas.Where(a => a.Name == areaName && a.Id != Id).Any();
}

您也只能使用
.Any()


您也只能使用
.Any()


你所说的“它不应该与自己相比”是什么意思?这里不清楚你的意思。如果假设
areaName
的值是Greenville,我正在用市区更新它。。。。然后它应该比较列
区域的所有值。Name
除了Greenville之外。我希望现在天气晴朗!为什么不将名称列设置为Uniq?然后您将无法添加相同的名称twice@LucianBumb为了获得良好的用户体验,您可能希望在保存之前,在输入名称后立即通知用户重复的名称。一个唯一的密钥在这里很有用,但只是作为一个补充,而不是作为OP现在正在做的事情的替代品。不,它对我不起作用。它的结果和之前一样。你说的“它不应该与自己相比”是什么意思?这里不清楚你的意思。如果假设
areaName
的值是Greenville,我正在用市区更新它。。。。然后它应该比较列
区域的所有值。Name
除了Greenville之外。我希望现在天气晴朗!为什么不将名称列设置为Uniq?然后您将无法添加相同的名称twice@LucianBumb为了获得良好的用户体验,您可能希望在保存之前,在输入名称后立即通知用户重复的名称。一个唯一的密钥在这里很有用,但只是作为一个补充,而不是作为OP现在正在做的事情的替代品。不,它对我不起作用。结果和之前一样。