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现在正在做的事情的替代品。不,它对我不起作用。结果和之前一样。