У меня есть 2 контроллера и репозитории, подарки и реестры. У подарка может быть реестр, и когда я пытаюсь создать новый подарок, я получаю сообщение об ошибке «Объект сущности не может ссылаться на несколько экземпляров IEntityChangeTracker».«Объект сущности не может ссылаться на несколько экземпляров IEntityChangeTracker» при сохранении связанного объекта
Подарок имеет следующие атрибуты:
public class Gift
{
public int GiftId { get; set; }
public string Name { get; set; }
public Registry Registry { get; set; }
}
Мой код, чтобы добавить подарок выглядит следующим образом:
В контроллере:
private IGiftRepository _giftRepository;
private IAccountRepository _accountRepository;
public GiftController()
{
this._giftRepository = new GiftRepository(new ApplicationDbContext());
this._accountRepository = new AccountRepository(new ApplicationDbContext());
}
public GiftController(IGiftRepository giftRepository)
{
this._giftRepository = giftRepository;
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create(Gift gift)
{
if (ModelState.IsValid)
{
Registry registry = _accountRepository.GetLoggedInRegistry(User.Identity.GetUserId());
gift.Registry = registry;
await _giftRepository.AddGiftAsync(gift);
return RedirectToAction("Home", "Admin");
}
return View(gift);
}
А вот код в хранилище:
public async Task<bool> AddGiftAsync(Gift gift)
{
try
{
_context.Gifts.Add(gift);
await _context.SaveChangesAsync();
}
catch (Exception)
{
return false;
}
return true;
}
В _content.Gifts.Add (подарок) Я получаю следующую ошибку: «Объект сущности не может ссылаться на несколько экземпляров IEntityChangeTracker». который я понимаю, объясняется тем, как я настроил свои контексты, но я не уверен, какие изменения мне нужно сделать, чтобы заставить это работать.