This question already has answers here:
combination of two field must be unique in Entity Framework code first approach. how it would?
                                
                                    (2个答案)
                                
                        
                                5年前关闭。
            
                    
我想检查唯一的密钥约束,但是我不知道使用哪种方法。
哪种方法更好?
我使用C#,EF,SQL Server

第一种方法:

    bool contactExists = _db.Contacts.Any(contact => contact.ContactName.Equals(ContactName));

if (contactExists)
{
    return -1;
}
else
{
    _db.Contacts.Add(myContact);
    _db.SaveChanges();
    return myContact.ContactID;
}


第二种方法:

Handle in exception.


第三种方法:
用T-SQL检查

If  Exists  (
    Select  Name
        From    dbo.ContentPage
        Where   Name    = RTRIM(LTRIM(N'page 1'))
    )


开始
    选择“真”
结束
其他
开始
    选择“假”
结束

最佳答案

我很少检查代码中的唯一键约束。实际上,如果多个客户端可以同时更新数据,那实际上是在浪费时间。假设您检查以确保可以添加员工“ Saeid Mirzaei”,并且发现密钥未被使用。因此,您添加了它。如果其他人同时输入了dup key问题,您仍然会遇到异常。您可以在TSQL或C#中处理异常,但是您几乎需要对健壮的代码使用异常处理。

关于c# - 如何检查唯一键约束,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24773988/

10-17 02:05