【问题标题】:How do you check if Record exists你如何检查记录是否存在
【发布时间】:2012-12-12 00:40:09
【问题描述】:

我有一个可以插入的表单。我想看看数据库中是否已经存在记录以防止重复。我有点不确定这什么时候必须下降。在作为表单的控件的代码隐藏中或在我调用以执行插入的类中。下面是我认为的课程。

public class AddContacts
{
    public int AddContact(string ContactName)
    {
        var myContact = new Solutions.Models.Contact();

        myContact.ContactName = ContactName;

        ItemContext _db = new ItemContext();

        _db.Contacts.Add(myContact);
        _db.SaveChanges();
        return myContact.ContactID;
    }
}

我已经看到使用 .Any() 的 If 语句完成了它,但我无法让它正常工作。我也不明白它需要返回什么才能让我发布错误消息Contact Name already exists

【问题讨论】:

    标签: c# asp.net linq entity-framework


    【解决方案1】:

    你可以像这样使用 Any 方法:

    bool contactExists = _db.Contacts.Any(contact => contact.ContactName.Equals(ContactName));
    
    if (contactExists)
    {
        return -1;
    }
    else
    {
        _db.Contacts.Add(myContact);
        _db.SaveChanges();
        return myContact.ContactID;
    }
    

    调用 AddContact 的方法将检查返回值并决定是否向用户显示错误或确认消息。

    【讨论】:

      【解决方案2】:

      做这样的检查:

      bool doesExistAlready = _db.Contacts.Any(o => o.ContactName == ContactName);
      

      如果这不起作用,试试这个:

      bool doesExistAlready = _db.Contacts.Count(o => o.ContactName == ContactName) > 0;
      

      打开 SQL 跟踪/调试,以便查看正在生成的实际 sql。

      【讨论】:

        【解决方案3】:

        这也有帮助。

        bool doesExistAlready = _db.Contacts.Count(o => o.ContactName == ContactName) > 0;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-04-07
          • 1970-01-01
          • 2011-02-20
          • 1970-01-01
          • 1970-01-01
          • 2015-01-21
          相关资源
          最近更新 更多