我使用的是Azure Mobile Service TableController。 我在实体框架中遇到外键关系问题。我有两个表:人员和国家。人员拥有CountryId的外键列。
在保存时,实体框架在Countries表中创建一个与countries [0]同名的新行,但是是一个新的递增ID。这显然不是理想的结果 - 该人员应将其Country_CountryId字段设置为国家/地区[0]的ID,并且不应创建新行。
我该如何解决这个问题?
我正在使用表格控制器
// POST tables/Booking
public async Task<IHttpActionResult> PostPerson(Personitem)
{
Person current = await InsertAsync(item);
return CreatedAtRoute("Tables", new { id = current.Id }, current);
}
我知道如何在api控制器中设置EntitySate
using (var dt = new DatabaseContext()) {
dt.Entities.Add(person);
dt.Entry(person.Country).State = EntityState.Modified;
dt.SaveChanges();
}
答案 0 :(得分:0)
当你保存那个对象时,你应该从数据库中获取国家并在person对象中使用它,例如:
从数据库“contryIdX”
设置person.ContryId =“contryIdX”
然后将其保存在数据库中