我對數據庫的設置是,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