Как обновить строку таблицы базы данных, когда внешний ключ имеет такое же значение ASP.NET mvc

У меня есть приложение, в котором магазины могут заполнить анкету. в этом приложении у меня есть две таблицы db.StoreAud(pk:AuditId), которая содержит всю информацию о магазинах, и db.storequests(pk:ReviewId), которая содержит информацию обо всех вопросах.

AuditId — это внешний ключ в таблице db.storequests. Теперь вот проблема, если магазин заполняет анкету, данные отлично сохраняются в базе данных, однако тот же магазин снова выполняет анкету, db.storequests создает новую строку в базе данных с новым значением первичного ключа вместо обновления предыдущего ряд. Вопрос в том, как я могу обновить предыдущую строку, если тот же магазин снова делает ту же анкету. надеюсь, что это сделано с тех пор.

db.StoreAUD

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    [Column(Order = 1)]
    public int AuditId { get; set; }

    public string Date { get; set; }

    public int StoreNumber { get; set; }
    public string StoreName { get; set; }

db.storequests

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    public int ReviewId { get; set; }

    public int AuditId { get; set; }

    public int QuestionOne { get; set; }

    public string QuestionTwo { get; set; }
    public string QuestionThree { get; set; }
    public string QuestionFour { get; set; }

контроллер

   [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(StoreQuestions storequestions) 
    {
        if (ModelState.IsValid)
        {
            StoreAudit findingAudit = db.StoreAudit.Find(storequestions.AuditId); // grabbing the id from th store audit table
            findingAudit.ReadOnlyTickBox = true;
            db.StoreQuestions.Add(storequestions);
            db.SaveChanges();
            return RedirectToAction("Details", "Audit", new { id = storequestions.AuditId });
        }

        return View(storequestions);
    }

person cedPound    schedule 27.03.2017    source источник
comment
Так же, как вы делаете это для StoreAudit. Сначала вы ищете его, и если он существует, вы обновляете возвращенную строку. Добавляйте только в том случае, если его нет.   -  person Erik Funkenbusch    schedule 27.03.2017
comment
Используйте действие Update() для обновлений.   -  person mxmissile    schedule 27.03.2017
comment
i@ErikFunkenbusch я думаю, что у меня это есть, но не получилось, не могли бы вы опубликовать код на всякий случай, если я сделал несколько ошибок, если вы не возражаете   -  person cedPound    schedule 27.03.2017
comment
@mxmissile мог бы опубликовать пример кода, если это возможно   -  person cedPound    schedule 27.03.2017
comment
@cedPound - Как вы думаете, как это у вас есть? Вы берете отправленные StoreQuestions и добавляете их в свой db.StoreQuestions каждый раз, независимо от того. Вы вообще не ищете StoreQuestions.   -  person Erik Funkenbusch    schedule 27.03.2017
comment
@ErikFunkenbusch я хотел сказать, что сделал решение, которое вы рекомендовали, однако я не думаю, что оно решило мою проблему, почему я попросил вас опубликовать код, который, по вашему мнению, является решением.   -  person cedPound    schedule 27.03.2017


Ответы (1)