繁体   English   中英

实体框架插入空记录

[英]Entity Framework inserting null record

我正在为正在使用的Web应用程序使用实体框架。 该网络应用程序会跟踪场所。 每个场所都可以举办几种类型的活动。 我有一个表,其中包含所有不同类型的事件类型(EventTypes),另一个表用于跟踪每个场所可以拥有哪些事件(VenueEventTypes),当我添加新场所时,我创建了一个新的VenueEventTypes集合,其中包含EventType属性并转到数据库,找到事件类型,并将其添加到每个VenueEventTypes中。 问题是,当我保存场地时,它会很好地创建所有内容,但是会在数据库中为EventTypes添加一个空记录,但是VenueEventType外键指向有效的事件类型,而不是新创建的空类型。 这是一些代码:

 public void addVenue(VEN_Venues venue)
    {
        using (var db = new VenueEntities())
        {
            var parish = from dbParish in db.VEN_Parishes
                         where dbParish.ParishID == venue.ParishID
                         select dbParish;

            venue.VEN_Parishes = parish.First();

            venue = this.processEventTypes(venue, db);
            db.VEN_Venues.AddObject(venue);
            db.SaveChanges();
        }
    }



    private VEN_Venues processEventTypes(VEN_Venues venue, VenueEntities db)
    {
        foreach (VEN_VenueEventTypes eventType in venue.VEN_VenueEventTypes)
        {
            eventType.VEN_EventTypes = new EventTypeFacade().findEventTypes(eventType.VEN_EventTypes, db);
        }
        return venue;
    }

有人可以指出我的错误吗?

谢谢!

似乎您实际上VEN_EventTypevenue.VEN_VenueEventTypes添加到VEN_EventType venue.VEN_VenueEventTypes

您必须按照以下步骤进行操作:

venue.VEN_VenueEventTypes.Add(eventType);

如果您不希望重复,则必须使用attach:

venue.VEN_VenueEventTypes.Attach(eventType);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM