在控制器MVC中保存时,EF不会提取外键

时间:2017-09-14 02:26:13

标签: c# asp.net-mvc entity-framework

我试图让我的控制器方法中的外键表中的id(外键)拉出来。我尝试了一堆不同的方法和技术,但没有运气。 footer_image_det是"孩子"表。我使用的是pk / fk,但不确定这是否是最好的方法。当我通过控制器进行调试时,模型不会拉出footer_image id,它始终为0.如何获取正确的ID?我添加了很多图片,因此ID绝对不是0.

这是我得到的错误: INSERT语句与FOREIGN KEY约束冲突" FK_footer_image_dets_footer_images"。冲突发生在数据库" rsqps",table" wst.footer_images",column' id'中。 声明已经终止。

模型1:

  public partial class footer_images
  {
    [Key]
    public int id { get; set; }

    [Required]
    [StringLength(200)]
    public string file_name { get; set; }

    [Required]
    [StringLength(50)]
    public string content_type { get; set; }

    [Required]
    public byte[] image { get; set; }

    public int? footer_id { get; set; }

    public virtual footer_image_dets footer_image_dets { get; set; }
}

模型2:

  public partial class footer_image_dets
{
    [Required]
    [StringLength(150)]
    public string target_url { get; set; }

    [Key, ForeignKey("footer_images")]
    public int id { get; set; }

    public virtual footer_images footer_images { get; set; }
}

控制器方法:

    public IHttpActionResult Post(footer_image_dets footer_image_detail)
    {
        if (ModelState.IsValid)
        {

            db.footer_image_dets.Add(footer_image_detail);
            db.SaveChanges();
        }           
        return CreatedAtRoute("DefaultApi", new { id = footer_image_detail.id }, footer_image_detail);           
    }

1 个答案:

答案 0 :(得分:0)

您与<EditText android:text="@+id/EditText01" android:id="@+id/EditText01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:focusableInTouchMode="false" /> one-to-oneparent-child关系,因此我认为您应该通过foreign key模型插入child模型,试一试

parent