EF。通过具有外键的Id删除实体

时间:2010-09-11 11:37:05

标签: .net entity-framework

我有两张表Job (Id, Title)Employee (Id, Name, JobId)。 1- *关系。

如何在不从数据库中检索信息的情况下删除引用其作业的员工?

我可以这样做:

var j = new Job { Id = 1 };  // UGLY, I have to create and attach Job instance and job.Id should be exactly the same as id  employee entity reffers to (!) 
e = new Employee { Id = 1, Job = j };  
db.AttachTo("Jobs", e);
db.AttachTo("Employees", e);
db.DeleteObject(e);
db.SaveChanges();

但我希望有类似的东西:

e = new Employee { Id = 1 };  
db.AttachTo("Employees", e);
db.DeleteObject(e);
db.SaveChanges();

是否可以构建实体并通过id删除它而不填充引用?如果实体方案没有外键,则附加/删除方法可以正常工作

1 个答案:

答案 0 :(得分:2)

在EF中,您需要先加载该项目,然后将其删除。

您可以编写存储过程以按ID删除项目,然后从EF调用存储过程。