如果数据库中存在给定值,如何在Entity Framework中实现检查条件?
我做到了:
using (eDoctorEntities db = new eDoctorEntities())
{
if (db.Pacjents.Any( x => x.Pesel == PESEL.Text))
{
MessageBox.Show("Podany PESEL istnieje w bazie");
}
else if (db.Kontakts.Any( x => x.email == Email.Text))
{
MessageBox.Show("Podany e-mail istnieje w bazie");
}
else if (db.Kontakts.Any( x => x.Telefon == Telefon.Text))
{
MessageBox.Show("Podany telefon istnieje w bazie");
}
else
{
db.Pacjents.Add(model);
db.SaveChanges();
MessageBox.Show("Zarejestrowano !");
}
}
但它不起作用:(请帮助我。
代码错误:
错误异常INNER DETAILS:
SqlException:违反PRIMARY KEY约束' PK_Adres'。不能 在对象' dbo.Adres'中插入重复键。重复的键值是 (0)。声明已经终止。
模型数据库:
答案 0 :(得分:2)
看起来您正试图将数据存储到表(Adres)中,在这种情况下,该值存在于' 0'中。在这些if语句中,您根本不会检查该值(Id_Adres)。
也可能是您没有将该值(Id_Adres)设置为在数据库中自动递增,因此它会取消模型中未设置的值,默认值为0.您需要手动设置PK ID或者它会在每次添加数据时自动递增。
@Fabio给出了正确的评论。