C# EF、SQL Server和重复PK错误
我写了一个程序,差不多一年了。他工作正常,但我最近在数据库中添加了一个新项目,但出现了错误 违反主键约束“PK_dbo.Accounts”。无法在对象“dbo.Accounts”中插入重复密钥。重复的键值为(110603267) 我面对着。没有什么特别的事情发生,我也不知道为什么会出现这个错误。 [Key]的Id字段,类型为long。并且位于is标识的数据库中。 这里要说的是,任何时候你试图添加一个新的Id项目(“110603267”)都被更改了,错误是另一个Id 使用ASP.NETMVC编写EF。请建议如何解决此问题。谢天谢地 我的模型:C# EF、SQL Server和重复PK错误,c#,sql-server,asp.net-mvc,entity-framework,C#,Sql Server,Asp.net Mvc,Entity Framework,我写了一个程序,差不多一年了。他工作正常,但我最近在数据库中添加了一个新项目,但出现了错误 违反主键约束“PK_dbo.Accounts”。无法在对象“dbo.Accounts”中插入重复密钥。重复的键值为(110603267) 我面对着。没有什么特别的事情发生,我也不知道为什么会出现这个错误。 [Key]的Id字段,类型为long。并且位于is标识的数据库中。 这里要说的是,任何时候你试图添加一个新的Id项目(“110603267”)都被更改了,错误是另一个Id 使用ASP.NETMVC编写E
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();
跑
如果你得到了,比如111111111,那就跑吧
DBCC CHECKIDENT(tbl, RESEED, 111111112)
似乎你的身份栏有一个错误的种子
另请参见。运行
如果你得到了,比如111111111,那就跑吧
DBCC CHECKIDENT(tbl, RESEED, 111111112)
似乎你的身份栏有一个错误的种子
另请参见。需要更多详细信息,尤其是现有代码的详细信息。能否显示一些代码?听起来你想插入一个Id已经存在但需要唯一的实体,不要只是粘贴所有代码。制作一个示例来说明您的问题。编写您的帐户实体和相关的db DbContext部分,以及如何调用它。重复键意味着您试图将一系列数据插入到一个实体中,该实体具有与现有实体相同的主键。通常在执行
DBContext.SaveChanges
时抛出。需要更多详细信息,尤其是现有代码的详细信息。能否显示一些代码?听起来你想插入一个Id已经存在但需要唯一的实体,不要只是粘贴所有代码。制作一个示例来说明您的问题。编写您的帐户实体和相关的db DbContext部分,以及如何调用它。重复键意味着您试图将一系列数据插入到一个实体中,该实体具有与现有实体相同的主键。通常在执行DBContext.SaveChanges
时抛出。