我有3个字段:urlNamedisplayNameactive。这是检查编辑记录。我在这里要做的是检查UrlName在Db中是否唯一,但是同时,如果用户已经保存了Url但更改了DisplayNameActive,则记录应该更新。

有人告诉我如何解决。

public bool NothingExceptUrlNameExists(string urlName, string displayName, bool active)
        {
            return (from p in _db.SubMenus
                    where p.UrlName == urlName && (p.DisplayName != displayName || p.DisplayName == displayName) && (p.Active != active || p.Active == active)
                    select p).Any();
        }

更新记录像
 TryUpdateModel(existingMenu);
                _menu.Add();

这就是我想要实现的

我的其他2个值应添加到Query DisplayName和Active中。假设数据库中已经有“Contact” UrlName。我正在从下拉列表加载值,返回UrlName =“About”,DisplayName =“About Us”,Active = true。现在编辑记录。这是要匹配的条件。

1-UrlName =“关于”,DisplayName =“关于测试”,Active = true->应该更新。

2-UrlName =“关于”,DisplayName =“关于我们”,有效=否->应该更新。

3-UrlName =“关于”,DisplayName =“关于测试”,有效=否->应该更新。

重要提示:4-UrlName =“newnotexist”,DisplayName =“关于测试”, Activity =否-> 这应更新UrlName并在更改后休息。

5-UrlName =“Contact”,DisplayName =“About Test”,Active = false-> 这不应更新并生成错误。

我希望你理解我想做什么。

最佳答案

基于更新后的问题,如果我对它的理解正确,我认为此解决方案将为您服务。

var urlNameExists = _sb.Any(x => x.UrlName == urlName && x.Id != currentEditId);

if (urlNameExists)
     throw Exception("A record with that UrlName already exists");

TryUpdateModel(existingMenu);
_menu.Add();

关于c# - LINQ查询问题。需要检查是否存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6300972/

10-12 20:47