多対 1 の関係でオブジェクトを保存および削除しようとしています。
次のコードがあります
[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);
}
フォロー機能は動作しますが、フォロー解除機能は動作しません。
フォロー解除機能は実際にはリストから人を削除しますが、更新機能はデータベースで更新しないため、機能しているようです。
私の更新機能は
public void Update(Company company)
{
var compToUpate = DbSet.FirstOrDefault(c => c.Id == company.Id);
DbContext.Entry(compToUpate).CurrentValues.SetValues(company);
DbContext.SaveChanges();
}
Company クラス内の関係
private ICollection<Person> _people;
public virtual ICollection<Person> People
{
get { return _people; }
set { _people = value; }
}