c# - Entity Framework 4 - 删除对象

标签 c# asp.net entity-framework entity-framework-4

我的数据库中有 3 个表

CmsMasterPages
CmsMasterPagesAdvSlots (Pure Juction Table)
CmsAdvSlots

这是我的 EDM 的图片:

enter image description here

我需要找出与 CmsMasterPage 连接的所有 CmsAdvSlot 对象(它在我发布的代码中工作,亲爱的), 并从数据库中删除结果 (CmsAdvSlot)。

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

Error: The object cannot be deleted because it was not found in the ObjectStateManager. 

        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();
        }

知道如何解决吗?谢谢你的时间! :-)

最佳答案

试试这个:

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();

关于c# - Entity Framework 4 - 删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5039476/

相关文章:

c# - 我应该为控制台应用程序附加什么进程?

c# - 主键的下一个值

c# - 从 javascript 调用 ASP 生成的按钮单击

c# - 将 IDbSet<class> 传递给泛型方法

C# WPF 与 MySql 和 EntityFramework

c# - 使用 ExecuteInDefaultAppDomain 调用主函数 C# 控制台应用程序

c# - 继承类属性顺序

c# - 如何将最后插入的 id 转换为字符串?

C# - 从 "cast"List<BaseClass> 到 List<DerivedClass> 的简单方法?

entity-framework - Entity Framework 与存储过程 - 性能衡量