簡體   English   中英

實體框架級聯刪除不起作用

[英]Entity Framework Cascade Delete not working

我有兩個表AgentTransmissionClearinghousePartners ,它們共享一對多的關系。 每個AgentTransmission記錄都可以作為許多ClearinhouseParnters的主體。

這通過AgentTransmission模型中的List對象表示。

我已將OnDelete屬性發送到.edmx文件中的“Cascade”,但是當我嘗試刪除AgentTransmission對象時,我收到此錯誤。

The DELETE statement conflicted with the REFERENCE constraint
 \"FK_ClearinghousePartners_AgentTransmission\". The conflict
 occurred in database \"AgentResourcesU01\", table 
\"dbo.ClearinghousePartners\", column 'AgtTransId'.\r\nThe
 statement has been terminated.

AgentTransmission

這包含一個TON字段,所以我把它減少到只與那些關系相關的字段

public partial class AgentTransmission
{
    public int ID { get; set; } //PK
    .
    .
    public virtual List<ClearinghousePartners> ClearinghousePartners { get; set; }
}

信息交換機構合作伙伴

public partial class ClearinghousePartners
{
    public int Id { get; set; } 
    public string ClearingHouseName { get; set; }
    public string TradingPartnerName { get; set; }
    public Nullable<System.DateTime> StartDate { get; set; }
    public int AgtTransId { get; set; } //FK

    public virtual AgentTransmission AgentTransmission { get; set; }
}

調節器

這里沒什么可瘋狂的,只是正常刪除。 希望EF刪除AgentTransmission對象的ClearinghousePartners List屬性中的AgentTransmission對象..我相信它能夠做到(雖然我可能是錯的)

//Cascade deletes set to remove ClearinghousePartners
db.AgentTransmission.Remove(agenttransmission);
db.SaveChanges(); //Exception thrown here

EDMX

在此輸入圖像描述

on delete設置需要映射到數據庫。 您是否從edmx模型更新了數據庫?

如果您使用的是數據庫優先方法,則還需要確保在數據庫中配置級聯刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM