我对数据库的设置是,Company
可以有很多Engineer
,并且可以在很多Territory
中。如果我应该从列表中删除一个公司,我需要做一个干净的退出,所以不要删除公司表格中的公司表格。我必须确保所有记录都被删除。所以没有儿童/相关记录成为孤儿数据。每个ID删除多条记录 - MVC C#
如果我从所有的表中删除一条记录,我会用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;
在这一刻我没有层叠删除设置,所以除此之外。任何其他选项。
https://msdn.microsoft.com/en-us/data/jj592907.aspx – CodeCaster 2015-02-24 14:20:14
谢谢@CodeCaster,我将在EF工作后看看SQL版本。非常感激 ! – PaulFrancis 2015-02-24 14:29:42