Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# INSERT语句与外键约束错误冲突_C#_Sql Server_Entity Framework 5_Asp.net Mvc 5_Asp.net Identity - Fatal编程技术网

C# INSERT语句与外键约束错误冲突

C# INSERT语句与外键约束错误冲突,c#,sql-server,entity-framework-5,asp.net-mvc-5,asp.net-identity,C#,Sql Server,Entity Framework 5,Asp.net Mvc 5,Asp.net Identity,嗨,我有这个错误 INSERT语句与外键约束“FK_dbo.AspNetUsers_dbo.Contacts_ContactID”冲突 冲突发生在数据库“aspnet-COGMakati-20140119015553”表“dbo.Contacts”列“ContactID”中 声明已终止 我正在使用实体框架和MVC 5的IdentityUser,所以我真的对我正在做的事情感到迷茫:| 这就是我试图填充的内容: public class User : IdentityUser { [Requ

嗨,我有这个错误

INSERT语句与外键约束“FK_dbo.AspNetUsers_dbo.Contacts_ContactID”冲突

冲突发生在数据库“aspnet-COGMakati-20140119015553”表“dbo.Contacts”列“ContactID”中

声明已终止

我正在使用实体框架和MVC 5的IdentityUser,所以我真的对我正在做的事情感到迷茫:|

这就是我试图填充的内容:

public class User : IdentityUser
{
    [Required]
    [Display(Name = "First Name")]
    public string FirstName { get; set; }

    [Required]
    [Display(Name = "Last Name")]
    public string LastName { get; set; }

    [Required]
    public string Email { get; set; }

    public string Birthday { get; set; }
    [Display(Name = "Referred By")]
    public string LifegroupPreference { get; set; }
    [Display(Name = "Civil Status")]
    public string CivilStatus { get; set; }

    public int EducationID { get; set; }
    public int WorkID { get; set; }
    public int ContactID { get; set; }
    public int FamilyID { get; set; }
    public int SpiritualID { get; set; }
    public int GrowthMilestoneID { get; set; }
        
    [ForeignKey("EducationID")]
    public virtual Education Education { get; set; }
    [ForeignKey("WorkID")]
    public virtual Work Work { get; set; }
    [ForeignKey("ContactID")]
    public virtual Contact Contact { get; set; }
    [ForeignKey("FamilyID")]
    public virtual Family Family { get; set; }
    [ForeignKey("SpiritualID")]
    public virtual Spiritual Spiritual { get; set; }
    [ForeignKey("GrowthMilestoneID")]
    public virtual GrowthMilestone GrowthMilestone { get; set; }
}
在我看来,
联系人
是在创建用户之前创建的。我不知道为什么会发生这种情况,因为当不使用
IdentityUser
时,该代码会很好地填充它

现在这是
寄存器
方法:

public async Task<ActionResult> Register(RegisterViewModel model)
{
    if (ModelState.IsValid)
    {
        var user = model.GetUser();
        var result = await UserManager.CreateAsync(user, model.Password);
        if (result.Succeeded)
        {
            var idManager = new IdentityManager();
            idManager.AddUserToRole(user.Id, "User");

            await SignInAsync(user, isPersistent: false);
            return RedirectToAction("ViewAllMembers", "Home");
        }
        else
        {
            AddErrors(result);
        }
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}
公共异步任务寄存器(RegisterViewModel模型)
{
if(ModelState.IsValid)
{
var user=model.GetUser();
var result=await UserManager.CreateAsync(用户、模型、密码);
if(result.successed)
{
var idManager=new IdentityManager();
idManager.AddUserToRole(user.Id,“用户”);
等待信号同步(用户,ispersist:false);
返回重定向到操作(“查看所有成员”、“主页”);
}
其他的
{
加法器(结果);
}
}
//如果我们走到这一步,有些东西失败了,重新显示形式
返回视图(模型);
}

如果要创建FK对象,则应首先存储并检索其ID,否则将导致FK_键失败,因为您没有FK值


Walter

您可能正试图使用不存在的外键访问或插入。转到您的
dbo.Contacts
表,用该键查找记录。在表中找不到具有该键的记录。您需要使用该键创建记录或使用另一个(存在的)键。

如果需要,您可以允许引用不存在的记录

Sql("ALTER TABLE dbo.Users NOCHECK CONSTRAINT [FK_dbo.Users_dbo.Roles_RoleID]");

这种情况只发生在接触者身上吗?其余的异物呢?嗨,拉基塔!我真的不知道如何测试这个。但是假设代码是自上而下读取的,那么我猜它在接触错误之前已经通过了教育和工作。非常感谢。如果您已经有一个数据库,并且以后在模型中进行了更改并尝试运行,则会出现此错误。请更改数据库名称,然后重试。你会没事的。如果可以,请删除您的数据库并重新启动againHi@Reddy,我所做的是删除位于我的App_Data文件夹和整个migrations文件夹中的.mdf文件。我重新启用了迁移,添加了新的迁移,并更新了数据库。同样的问题=/或者是否有更好的方法删除数据库?您的数据库中是否包含大量信息??你介意删除数据库吗。。您正在使用SQL server吗?谢谢!我通过删除负责导航属性的id来解决这个问题,而是将每个表的导航属性交给用户。