实体框架5.0 - 删除对象而不检索它

时间:2015-03-28 21:11:50

标签: entity-framework-5

我想删除这样的数据库条目:

public bool DeletePersonById(int id)
    {
        var p = new Person() { ID = id };
        //ctx.Person.Attach(p);
        ctx.Entry<Person>(p).State = EntityState.Deleted;
        return true;
    }

然后我收到一个带有以下消息的InvalidOperationException:

  

关键字段“FirstName”的值不能为null。 “Person”类型上定义的关键字段需要非空值。

所以,对我而言,在这种情况下属性是否可以为null并不重要,因为我只想删除完整的行/对象。 对象已加载AsNoTracking()

(from p in ctx.Person.AsNoTracking() where p.ID == id select p).FirstOrDefault();

1 个答案:

答案 0 :(得分:0)

好吧,我的表没有主键,在这个db表上添加pk并重新生成ef模型之后,上面的代码就可以了。