EntityFramework SaveChanges表现得很奇怪

时间:2011-05-18 10:40:37

标签: c# entity-framework asp.net-mvc-3

我有一个奇怪的问题,让我描述一下情况:

我正在使用MVC3 w / C#和entityframework作为数据库

我有一个包含许多可选字段的更新页面(对于某个事件),但是如果您之前已经完成了这些信息,则这些字段不再是可选字段,您可以更改它们。

这段代码有效,它显示了我想要的错误,但是当我用空数据填写表格几次然后使用正确的数据时,所有“错误”的条目似乎已经堆积起来并且都被添加到1个事务中的数据库。

我怀疑它是SaveChanges()

我的代码:

[HttpPost]
    public ActionResult Update(int id, HttpPostedFileBase logoupload, Event @event) {
        try {
            ...
            var originalEvent = _eventMapper.GetEventById(id);

            @event.naam = originalEvent.naam;
            @event.beginDatum = originalEvent.eindDatum;
            @event.omschrijving = originalEvent.omschrijving;
            @event.sportID = originalEvent.sportID;
            @event.Sport = originalEvent.Sport;
            @event.organisatorID = originalEvent.organisatorID;
            @event.code = originalEvent.code;
            @event.Organizer = originalEvent.Organizer;

            var firstTime = true;

            if(originalEvent.HasCompleteData())
            {
                firstTime = false;
                if(!@event.HasCompleteData())
                {
                    ViewBag.IncompleteError = "You can't omit values that were previously filled in.";
                    return View(@event);
                }   
            }

    TryUpdateModel(originalEvent);
            Db.SaveChanges();

            if (@event.HasCompleteData() && firstTime) {
                Mailer.SendOrganiserUpdatedData(@event);
            }

            return RedirectToAction("Index");
        } catch {
            return View(@event);
        }

我在这里缺少什么?

0 个答案:

没有答案