2013-06-25 27 views
0

我試圖在多對一的關係中保存和刪除對象。可以添加數據但不能刪除

我有以下代碼

[System.Web.Http.HttpPost] 
    public void FollowPerson(int personId, int companyId) 
    { 
     var uow = new Uow(); 
     var person = uow.People.GetById(personId); 
     var company = uow.Companies.GetById(companyId); 

     company.People.Add(person); 
     uow.Companies.Update(company); 
    } 

    [System.Web.Http.HttpDelete] 
    public void UnFollowPerson(int personId, int companyId) 
    { 
     var uow = new Uow(); 
     var person = uow.People.GetById(personId); 
     var company = uow.Companies.GetById(companyId); 

     company.People.Remove(person); 
     uow.Companies.Update(company); 
    } 

後續功能的作品,但不追蹤功能不。

取消關注功能似乎起作用,因爲它實際上將人從列表中移除,但Update功能不會在數據庫中更新它。

我的更新功能是公司類

private ICollection<Person> _people; 
public virtual ICollection<Person> People 
    { 
     get { return _people; } 
     set { _people = value; } 
    } 
+0

請添加關係選項 –

+0

@ElvinArzumanoğlu是你的意思?查看更新 –

+0

我想看看人與公司之間的關係類,請 –

回答

1

public void Update(Company company) 
    {   
     var compToUpate = DbSet.FirstOrDefault(c => c.Id == company.Id); 
     DbContext.Entry(compToUpate).CurrentValues.SetValues(company); 
     DbContext.SaveChanges(); 
    } 

關係這是否工作

var company = uow.Companies.GetById(companyId); 
     ...depending on if you have lazy loading, might need to do a load on People 
    var person = company.People.where(p=> p.id==personId).first(); 
    company.People.Remove(person); 

EF是一個挑剔的野獸。

+0

就是這樣。謝謝。 –

相關問題