【问题标题】:I am getting error of conflict in asp.net MVC5我在 asp.net MVC5 中遇到冲突错误
【发布时间】:2015-05-24 18:08:04
【问题描述】:

我在 asp.net MVC5 中遇到冲突错误

这是我的Form模型的模型类

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Key]
        public Guid FormId { get; set; }
        public Guid EntityBlockId { get; set; } // LinkToEntityBlockId
        public virtual EntityBlock EntityBlock { get; set; }

这是我的 EntityBlock 模型的模型类

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Key]
        public Guid EntityBlockId { get; set; }

        public virtual ICollection<Form> Form { get; set; }

并插入如下值:

FormStaticMethodsController formStaticMethodsControllerObj = new FormStaticMethodsController();

        Form form = new Form();
                    form.EntityBlockId = linkToBlockId;
    formStaticMethodsControllerObj.CreateForm(form);

方法是:

 public Guid CreateForm(Form form)
            {
                db.Forms.Add(form);
                db.SaveChanges();

                return form.FormId;
            }

错误是:

INSERT 语句与 FOREIGN KEY 约束“FK_dbo.Form_dbo.EntityBlock_EntityBlockId”冲突。冲突发生在数据库“aspnet-Planetskool-20150303080110”、表“dbo.EntityBlock”、列“EntityBlockId”中。 声明已终止。

【问题讨论】:

    标签: entity-framework asp.net-mvc-4 entity-framework-4 asp.net-mvc-5 entity-framework-5


    【解决方案1】:

    如果您将EntityBlockId定义为EntityBlock 的外键值,则应使用ForeignKeyAttributeEntityBlock 属性链接与字段EntityBlockId 链接:

        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Key]
        public Guid FormId { get; set; }
        public Guid EntityBlockId { get; set; } // LinkToEntityBlockId
    
        [ForeignKey("EntityBlockId")]
        public virtual EntityBlock EntityBlock { get; set; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 2010-10-18
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 1970-01-01
      • 2017-04-09
      相关资源
      最近更新 更多