我有3個由Employees,Departments和EmployeesToDepartments組成的規範化表。我希望能夠將一個員工分配給一個或多個部門,因此可以將鏈接表(EmployeesToDepartments)。我可以成功地查詢數據庫,並使用使用RIA服務和實體框架通過導航屬性從數據庫表中刪除實體
this.ObjectContext.Employees.Include("EmployeesToDepartments").Include("EmployeesToDepartments.Department")
通過導航屬性提取實體的完整的層次加上[包含]屬性的元數據,從而使我訪問部門對於一個給定的僱員。試圖刪除[EmployeesToDepartments]表中的[Employee]和[Department]之間的鏈接時,我收到了一個外鍵約束錯誤。
我簡化了我的模型,在[Employees]和[EmployeesToDepartments]之間只包含一個導航屬性。 [Employees]。[ID]和[EmployeesToDepartments]之間的外鍵約束[IDEmployee]阻止我更新EmployeesToDepartments表。通過關係設置刪除,我現在可以更新表格。我現在可以執行以下代碼
foreach (var rel in _employee.EmployeesToDepartments)
{
_employee.EmployeesToDepartments.Remove(rel);
}
_domainContext.SubmitChanges();
沒有錯誤。
我期待看到RelmployeesToDepartments中的條目與IDEmployee已被刪除。我在表中看到的是IDEmployee以前的值0。
是否可以強制發佈DELETE語句?我誤解了這裏的基本概念嗎?
任何幫助將不勝感激。
偉大的,這是有道理的。非常感謝! – fran 2011-06-01 09:41:57