UPDATE语句与FOREIGN KEY约束冲突

时间:2014-03-13 10:12:25

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

我在ASP.NET MVC中从EF6收到此错误。

在回发之前,一切似乎都没问题。我的意思是视图显示了应有的一切。

但是当涉及回发时,它会抛出错误

The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_dbo.Müşteriler_dbo.İletişimBilgileri_İletişimID". The conflict occurred in database "SistemContext", table "dbo.İletişimBilgileri", column 'ID'.The statement has been terminated.

这是模型类。

[Table("Müşteriler")]
public class Müşteri
{

    [Key]
    [Required]
    [DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }

    [Required]
    [MaxLength(255)]
    public string Adı { get; set; }


    public int ResimID { get; set; }
    public int İletişimID { get; set; }


    public virtual Resim Resim { get; set; }

    public virtual İletişim İletişim { get; set; }

    public virtual List<Talep> Talepler { get; set; }



}

[Table("İletişimBilgileri")]
public class İletişim
{
    [Key]
    [Required]
    [DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }

    public string Telefon { get; set; }
    public string Adres { get; set; }
    public string Şirket { get; set; }
    public string Telefon2 { get; set; }
    public string Fax { get; set; }
    public string Email { get; set; }
}


[Table("Resimler")]
public class Resim
{
    [Key]
    [Required]
    [DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }

    public string Yol { get; set; }

}

视图

        <div class="col-md-2">

            <div class="col-md-12">
                <div class="col-md-12 fileupload fileupload-exists" data-provides="fileupload">

                    <div class="fileupload-preview fileupload-exists thumbnail" style="width: 200px; height: 150px;">
                        <img src="@Model.Resim.Yol" />

                    </div>
                    <div>
                        <span class="btn btn-default btn-file">
                            <span class="fileupload-new">Resim Ekle </span>
                            <span class="fileupload-exists">Değiştir</span><input name="file"  id="file" type="file">
                        </span>
                        <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Sil</a>
                    </div>
                </div>
            </div>
        </div>


        <div class="col-md-10">
            <div class="col-md-3">
                <label>Adı *</label>
                @Html.TextBoxFor(model => model.Adı, new { @class = "form-control", @data_toggle = "tooltip", @data_placement = "top", @title = "Lütfen müşterinin ismini giriniz" })
            </div>




            <div class="col-md-3">
                <label>Şirket </label>
                @Html.TextBoxFor(model => model.İletişim.Şirket, new { @class = "form-control", @data_toggle = "tooltip", @data_placement = "top", @title = "Lütfen müşterinin şirketini giriniz" })
            </div>

            <div class="col-md-3">
                <label>Telefon 1 </label>
                @Html.TextBoxFor(model => model.İletişim.Telefon, new { @class = "form-control", @data_toggle = "tooltip", @data_placement = "top", @title = "Lütfen müşterinin şirketini giriniz" })
            </div>

            <div class="col-md-3">
                <label>Telefon 2 </label>
                @Html.TextBoxFor(model => model.İletişim.Telefon2, new { @class = "form-control", @data_toggle = "tooltip", @data_placement = "top", @title = "Lütfen müşterinin şirketini giriniz" })
            </div>

            <div class="clearfix"><br /></div>

            <div class="col-md-3">
                <label>Fax </label>
                @Html.TextBoxFor(model => model.İletişim.Fax, new { @class = "form-control", @data_toggle = "tooltip", @data_placement = "top", @title = "Lütfen müşterinin şirketini giriniz" })
            </div>

            <div class="col-md-3">
                <label>E-Mail </label>
                @Html.TextBoxFor(model => model.İletişim.Email, new { @class = "form-control", @data_toggle = "tooltip", @data_placement = "top", @title = "Lütfen müşterinin şirketini giriniz" })
            </div>

            <div class="col-md-3">
                <label>Adres </label>
                @Html.TextBoxFor(model => model.İletişim.Adres, new { @class = "form-control", @data_toggle = "tooltip", @data_placement = "top", @title = "Lütfen müşterinin şirketini giriniz" })
            </div>

        </div>

经过一番研究,我决定为Müşteri.ResimID和Müşteri.İletişimID添加两个隐藏输入,以便回发它们,但是这又引发了另一个错误。

A referential integrity constraint violation occurred: The property values that define the referential constraints are not consistent between principal and dependent objects in the relationship.

我一直在寻找互联网上的一些文章,但我找不到任何东西。我认为存在某种逻辑错误,但我无法弄明白。

因此。如果你能提出任何建议,那就太棒了......

提前致谢..

0 个答案:

没有答案