簡體   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