Мне нужно обновить, какой объект связан с основным объектом, но когда я обновляю его, он изменяет только идентификатор, когда я использую отладчик, он не меняет объект, связанный с ним, в свойстве навигации ...
вот модели
Main Entity
public class Parametro
{
public Parametro()
{
AlcanceAbastecimento = 3; // Default Nº PAB
}
public int Id { get; set; }
public int NumTurnos { get; set; }
public int NumPAB { get; set; }
public int? AlcanceAbastecimento { get; set; }
public int QtdMin { get; set; }
public int QtdMax { get; set; }
public int UAPId { get; set; }
public UAP UAP { get; set; } // Associated entity
}
public class UAP
{
public int Id { get; set; }
public string Nome { get; set; }
public Parametro Parametro { get; set; }
}
это отношение один-к-одному
при редактировании вот вид
@Html.DropDownListFor(model => model.UAPId, (IEnumerable<SelectListItem>)ViewData["UAPS"], "Selecione um UAP", new { @class = "form-control form-control-sm" })
и контроллер для публикации при редактировании
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit([Bind(Include = "Id,NumTurnos,NumPAB,AlcanceAbastecimento,QtdMin,QtdMax,UAPId")] Parametro parametro)
{
if (ModelState.IsValid)
{
db.Entry(parametro).State = EntityState.Modified;
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
using (db)
{
ViewData["UAPS"] = new SelectList(db.UAP.ToList(), "Id", "Nome");
}
return View(parametro);
}
и на свободном API
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<UAP>()
.HasOptional(u => u.Parametro) /
.WithRequired(p => p.UAP); /
}
здесь он только изменяет UAPId, но не фактическую сущность.Чего мне не хватает?