【发布时间】:2015-04-26 05:09:58
【问题描述】:
我的数据库设置是,Company 可以有多个Engineer,也可以有多个Territory。如果我应该从列表中删除一家公司,我需要彻底退出,所以不要只从公司表中删除公司。我必须确保所有记录都被删除。因此,没有子/相关记录成为孤立数据。
如果我要从所有表中删除一条记录,我只需使用FirstOrDefault 删除它,然后我可以使用
public void RemoveCompany(long companyId)
{
using (var db = new BoilerServicingDbContext())
{
var ec = db.Engineers.FirstOrDefault(x => x.CompanyId == companyId);
db.Engineers.Remove(ec);
var tc = db.CompanyTerritories.FirstOrDefault(x => x.CompanyId == companyId);
db.CompanyTerritories.Remove(tc);
var p = db.Companies.FirstOrDefault(x => x.Id == companyId);
db.Companies.Remove(p);
db.SaveChanges();
}
}
但是,每个公司有多个工程师,每个公司有多个区域。有没有像一般数据库意义上的简单方法。
DELETE * FROM Engineers WHERE companyId = 1;
目前我没有级联删除设置,除此之外。任何其他选项。
【问题讨论】:
-
谢谢@CodeCaster,我会在EF工作后查看SQL版本。非常感谢!
标签: c# asp.net-mvc entity-framework model-view-controller cascade