如何告诉EF Core不在帖子上插入相关数据?
这是我对于Deposito和Sucursal的模型
public class IDeposito
{
[Key]
public int Id { get; set; }
public string Descrip { get; set; }
public string Alias { get; set; }
public Boolean Activo { get; set; }
public ISucursal Sucursal { get; set; }
}
public class ISucursal
{
[Key]
public int Id { get; set; }
public string Descrip { get; set; }
public string Alias { get; set; }
public Boolean Activo { get; set; }
}
这是我的控制器
[HttpPost]
public IActionResult Create([FromBody] IDeposito postData)
{
if (postData == null)
{
return BadRequest();
}
_context.Depositos.Add(postData);
_context.SaveChanges();
return CreatedAtRoute("GetDeposito", new { ID = postData.Id }, postData);
}
当我发布这个模型时 { " Descrip":" Neuquen", " Alias":" NQN", " Activo":是的, " Sucursal":{ " Id":1, " Descrip":" Comodoro Rivadavia", " Alias":" CR", " Activo":是的 } }
它失败了,因为它试图插入表格" Sucursal&#34 ;,虽然已经存在" Sucursal" id:1。
无论如何,我可以告诉EF Core不更新相关表吗?非常感谢你
答案 0 :(得分:1)
如果您希望将新IDeposito连接到Id = 1的现有ISucursal,则使用第一种方法:
postData.Sucursal = _context.Sucursals.Find(postData.Sucursal.Id);
_context.Depositos.Add(postData);
_context.SaveChanges();
return CreatedAtRoute("GetDeposito", new { ID = postData.Id }, postData);
如果你想只添加IDeposito而没有任何sucursal:
postData.Sucursal = null;
_context.Depositos.Add(postData);
_context.SaveChanges();
return CreatedAtRoute("GetDeposito", new { ID = postData.Id }, postData);