如何检查记录是否存在

10

我有一个表单执行插入操作。我想要检查记录是否已经存在于数据库中,以防止重复。我不确定这是什么时候发生的。是在控件的代码后台,也就是表单中,还是在我调用执行插入的类中。下面是我认为应该放置此代码的类。

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 语句,但我无法使它正常工作。我也不理解为了让我发布一个错误消息 联系人姓名已存在,它需要返回什么。

3个回答

26

您可以这样使用 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方法的代码会检查返回值,并决定是否向用户显示错误或确认信息。


5

像这样进行检查:

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

如果这不能起作用,尝试这个:
bool doesExistAlready = _db.Contacts.Count(o => o.ContactName == ContactName) > 0;

打开SQL跟踪/调试功能,以便查看实际生成的SQL语句。


0

这也可以有所帮助。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接