我做的一個項目,在我用兩個表代理和用戶如何刪除行。用戶表包含一個名爲agentid的外鍵,它從代理表的id中獲取值。所以在這裏我需要刪除代理表中的代理,同時它必須對用戶表生效,並且必須刪除用戶表中具有與刪除的代理相同標識的行。例如,假設如果我從代理表中刪除了代理10,則必須刪除ID 10中的所有細節,同時還必須刪除用戶表中具有10的agentid。當我只需刪除代理表的代理,它會生成具有相同的ID MVC兩個不同的表
The DELETE statement conflicted with the REFERENCE constraint
我不知道如何解決我的問題的錯誤,我的代碼是
控制器
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<ActionResult> DeleteConfirmed(int id)
{
AgentMaster agentMaster = await db.AgentMasters.FindAsync(id);
db.AgentMasters.Remove(agentMaster);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
模型
public partial class AgentMaster
{
public AgentMaster()
{
this.Users = new HashSet<User>();
}
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection<User> Users { get; set; }
}
DbContext
public NewEntities()
: base("name=NewEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
modelBuilder.Entity<AgentMaster>()
.HasOptional(c => c.Users)
.WithOptionalDependent()
.WillCascadeOnDelete(true);
}
這是我的控制器部分,當我試圖加入表和刪除記錄它總是顯示了同樣的錯誤。任何人都可以請幫我找到解決我的問題?????
添加這個您能不能告訴AgentMaster模型發生? – Usman
已在我的問題中包含模型 – user355
首先你必須刪除所有用戶與agerntmaster相關的東西,然後你可以刪除代理人 – Usman