C# EF、SQL Server和重复PK错误

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

我写了一个程序,差不多一年了。他工作正常,但我最近在数据库中添加了一个新项目,但出现了错误

违反主键约束“PK_dbo.Accounts”。无法在对象“dbo.Accounts”中插入重复密钥。重复的键值为(110603267)

我面对着。没有什么特别的事情发生,我也不知道为什么会出现这个错误。 [Key]的Id字段,类型为long。并且位于is标识的数据库中。 这里要说的是,任何时候你试图添加一个新的Id项目(“110603267”)都被更改了,错误是另一个Id

使用ASP.NETMVC编写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();

如果你得到了,比如111111111,那就跑吧

DBCC CHECKIDENT(tbl, RESEED, 111111112)
似乎你的身份栏有一个错误的种子

另请参见。

运行

如果你得到了,比如111111111,那就跑吧

DBCC CHECKIDENT(tbl, RESEED, 111111112)
似乎你的身份栏有一个错误的种子


另请参见。

需要更多详细信息,尤其是现有代码的详细信息。能否显示一些代码?听起来你想插入一个Id已经存在但需要唯一的实体,不要只是粘贴所有代码。制作一个示例来说明您的问题。编写您的帐户实体和相关的db DbContext部分,以及如何调用它。重复键意味着您试图将一系列数据插入到一个实体中,该实体具有与现有实体相同的主键。通常在执行
DBContext.SaveChanges
时抛出。需要更多详细信息,尤其是现有代码的详细信息。能否显示一些代码?听起来你想插入一个Id已经存在但需要唯一的实体,不要只是粘贴所有代码。制作一个示例来说明您的问题。编写您的帐户实体和相关的db DbContext部分,以及如何调用它。重复键意味着您试图将一系列数据插入到一个实体中,该实体具有与现有实体相同的主键。通常在执行
DBContext.SaveChanges
时抛出。