2016-11-24 114 views
1

我有兩個表 一個表主菜單外鍵約束錯誤當從表中Asp.net MVC刪除4

public int Id { get; set; } 
public string Name { get; set; } 
public Nullable<int> SortOrder { get; set; } 
public virtual ICollection<SpclWebSiteLink> SpclWebSiteLinks { get;set;} 
public virtual ICollection<SubMenu> SubMenus { get; set; } 

和其他表已經forgein關鍵

public partial class LevelOneMenu 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public Nullable<int> SubMenuId { get; set; } 
    public virtual SubMenu SubMenu { get; set; } 
    public virtual ICollection<LevelTwoMenu> LevelTwoMenus { get; set; } 
} 

和第三表有Levelone菜單的僞造鍵

public partial class LevelTwoMenu 
{ 
    public LevelTwoMenu() 
    { 
     this.ProductMenus = new HashSet<ProductMenu>(); 
    } 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Image { get; set; } 
    public string Url { get; set; } 
    public Nullable<int> LevelOneId { get; set; }  
    public virtual LevelOneMenu LevelOneMenu { get; set; } 
    public virtual ICollection<ProductMenu> ProductMenus { get; set; } 
} 

當我從主M enu產品Givegein key約束錯誤,因爲我在LevelTwo表中使用LevelOne表中的主菜單forgien鍵和levelOne表的Id作爲forgien鍵。我想刪除列中的主產品和其他相關行分配空值,但我無法理解這種情況。你能指導我 在此先感謝

+0

你正在使用哪種ORM框架?它是實體框架6還是其他? – Vinod

+0

查看答案相同。 –

回答

0

如果您使用的是實體框架,那麼您需要刪除並重新添加EDMX,然後它將完美工作。

刪除EDMX嘗試以下步驟更新EDMX如果它的工作原理則無需刪除EDMX否則你必須刪除並重新之前重新添加EDMX:

-> Right Click on EDMX 
-> Select Click Open 
-> Right Click On Page 
-> Select Update Model From Database EDMX 
-> Save your changes 

這將幫助你!