实体框架4 - 删除对象

Gib*_*boK 2 c# asp.net entity-framework entity-framework-4

我的DataBase中有3个表

CmsMasterPages
CmsMasterPagesAdvSlots (Pure Juction Table)
CmsAdvSlots
Run Code Online (Sandbox Code Playgroud)

这是我的EDM图片:

在此输入图像描述

我需要找出与CmsMasterPage连接的所有对象CmsAdvSlot(它在我的代码中发布了belove),并从DataBase中删除结果(CmsAdvSlot).

我的问题是当我找到主题时,我无法删除此对象.

Error: The object cannot be deleted because it was not found in the ObjectStateManager. 
Run Code Online (Sandbox Code Playgroud)
        int findMasterPageId = Convert.ToInt32(uxMasterPagesListSelector.SelectedValue);
        CmsMasterPage myMasterPage = context.CmsMasterPages.FirstOrDefault(x => x.MasterPageId == findMasterPageId);
        var resultAdvSlots = myMasterPage.CmsAdvSlots;
        // It is working until here
        foreach (var toDeleteAdv in resultAdvSlots)
        {
            context.DeleteObject(myMasterPage.CmsAdvSlots.Any()); // ERORR HERE!!
            context.SaveChanges();
        }
Run Code Online (Sandbox Code Playgroud)

知道怎么解决吗?谢谢你的时间!:-)

Lad*_*nka 5

试试这个:

while (myMasterPage.CmsAdvSlots.Count > 0)
{
  var slot = myMasterPage.CmsAdvSlots.First();
  myMasterPage.CmsAdvSlots.Remove(slot); // This is required only in some scenarios - it depends on type of entities you are using.
  context.DeleteObject(slot);
}

context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)