1

我正在为我正在开发的 web 应用程序使用实体框架。该网络应用程序会跟踪场地。每个场地可以举办多种类型的活动。我有一个包含所有不同类型的事件类型 (EventTypes) 的表和另一个跟踪每个场地可以拥有的事件 (VenueEventTypes) 的表格,当我添加一个新场地时,我创建了一个包含 EventType 属性的新 VenueEventTypes 集合然后到数据库中查找事件类型并将其添加到每个 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;
    }

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

谢谢!

4

1 回答 1

1

看起来您实际上并未VEN_EventTypevenue.VEN_VenueEventTypes.

您必须按照以下方式做一些事情:

venue.VEN_VenueEventTypes.Add(eventType);

如果您不想要任何重复项,则必须使用附加:

venue.VEN_VenueEventTypes.Attach(eventType);
于 2013-04-15T17:57:58.883 回答