代码之家  ›  专栏  ›  技术社区  ›  Zachary Scott

实体框架4:DeleteObject(实体):我需要先检索这个对象吗?

  •  1
  • Zachary Scott  · 技术社区  · 14 年前

    public void Del(E entity) // where E : EntityObject on the class
    {   if( entity != null)
            DC.DeleteObject( entity);
        return; 
    }
    

    它运行在MVC 2 web应用程序中。所以,用户将主键值从一个实体发送到delete,我创建一个新实体,然后将其发送到delete方法。这将提取主键并使用Where()子句删除项。先查询数据库似乎很傻。

    2 回复  |  直到 14 年前
        1
  •  4
  •   Diego theGame    14 年前

    在EF 4上,不需要查询要删除(或更新)的对象,但需要设置主键并将其附加到上下文。你的方法如下:

    public void Del(E entity) // where E : EntityObject on the class
    {   
        if( entity != null)
        {
            DC.Attach(entity);
            DC.DeleteObject( entity);
            DC.SaveChanges();
        }
    }
    

    可以对已删除的对象调用DeleteObject方法。 http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.deleteobject.aspx

        2
  •  1
  •   Craig Stuntz    14 年前

    你不需要找回它,但是你