EF,SQL Server和重复的PK错误
问题描述:
我写了一个程序,它是将近一年,他被工作正常,但我最近在数据库中,错误增加了一个新的项目EF,SQL Server和重复的PK错误
违反PK_dbo的PRIMARY KEY约束”。帐户。无法在对象'dbo.Accounts'中插入重复键。重复的键值是(110603267)。
我面临。没有什么特别的事情发生,我不知道为什么会出现这个错误。 [Key]的Id字段,类型为long。并且在数据库中是身份。 可以这样说,任何时候您尝试添加Id的新项目(“110603267”)都已更改,并且错误是一个其他ID。
使用ASP.NET MVC编写EF。请告知如何解决此问题。感恩
我的模型:
public partial class Account
{
[Key]
public long ID { get; set; }
[Required(ErrorMessage = "*")]
[System.Web.Mvc.Remote("CheckExistUser", "ManageAccount", ErrorMessage = "این نام کاربری قبلا ثبت شده", HttpMethod = "POST")]
[StringLength(10, MinimumLength = 10, ErrorMessage = "کد ملی 10 رقم می باشد")]
[Display(Name = "کد ملی")]
public string Name { get; set; }
[Display(Name = "رمز عبور")]
[Required(ErrorMessage = "*")]
[MinLength(6, ErrorMessage = "حداقل 6 کاراکتر")]
//[DataType(DataType.Password)]
public string Password { get; set; }
[Display(Name = "تکرار رمز عبور")]
[Required(ErrorMessage = "*")]
// [DataType(DataType.Password)]
[System.Web.Mvc.Compare("Password", ErrorMessage = "عدم تطابق کلمه عبور")]
public string PasswordRe { get; set; }
[Display(Name = "امضا")]
public string Signature { get; set; }
[Display(Name="ایمیل")]
[System.Web.Mvc.Remote("CheckExistEmail", "ManageAccount", ErrorMessage = "این ایمیل قبلا ثبت شده", HttpMethod = "POST")]
public string Email { get; set; }
[ForeignKey("GroupID")]
public virtual Group Group { get; set; }
public long? GroupID { get; set; }
[ForeignKey("ActorID")]
public virtual Actor Actor { get; set; }
public long? ActorID { get; set; }
[Display(Name = "شماره همراه")]
[Required(ErrorMessage = "*")]
public string Mobile { get; set; }
}
我的代码:
var tempAccount = new Account
{
Name = tempCodeMeli,
Password = SecurityManager.HashData(mobile),
PasswordRe = SecurityManager.HashData(mobile),
Mobile = mobile,
IsActive = true,
_ Date = DateTime.Now
};
dbContext.Accounts.Add(tempAccount);
dbContext.SaveChanges();
答
运行
SELECT MAX(ID) FROM Accounts
,然后如果你如111111111运行
DBCC CHECKIDENT(tbl, RESEED, 111111112)
看起来像您的标识列有错误的种子。请参阅this answer。
需要更多的细节,特别是现有的代码。 – cjb110
你能显示一些代码吗?听起来就像你试图插入一个已经存在但需要唯一的Id的实体。 –
而且不要只是粘贴全部**代码。制作[MCVE]来说明您的问题。 –