C# 实体框架插入空记录

C# 实体框架插入空记录,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我正在为我正在开发的Web应用程序使用实体框架。该web应用程序可跟踪场馆。每个场馆可以举办多种类型的活动。我有一个包含所有不同类型事件类型(EventType)的表,还有一个记录每个场馆可以举办哪些事件的表(VenueEventType),当我添加一个新的场馆时,我会创建一个新的VenueEventTypes集合,其中包含一个EventType属性,然后转到数据库,找到事件类型并将其添加到每个VenueEventTypes中。问题是,当我保存场地时,它创建的一切都很好,但是它在数据库中为Eve

我正在为我正在开发的Web应用程序使用实体框架。该web应用程序可跟踪场馆。每个场馆可以举办多种类型的活动。我有一个包含所有不同类型事件类型(EventType)的表,还有一个记录每个场馆可以举办哪些事件的表(VenueEventType),当我添加一个新的场馆时,我会创建一个新的VenueEventTypes集合,其中包含一个EventType属性,然后转到数据库,找到事件类型并将其添加到每个VenueEventTypes中。问题是,当我保存场地时,它创建的一切都很好,但是它在数据库中为EventType添加了一个空记录,但是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;
    }
有人能给我指出错误吗


谢谢

您似乎并没有将
venueeventtype
添加到
场馆。VenueEventTypes

你必须按照以下思路做一些事情:

venue.VEN_VenueEventTypes.Add(eventType);
如果不需要任何副本,则必须使用“附加”:

venue.VEN_VenueEventTypes.Attach(eventType);

看起来您并没有实际将
venu EventType
添加到
场馆。venu VenueEventTypes

你必须按照以下思路做一些事情:

venue.VEN_VenueEventTypes.Add(eventType);
如果不需要任何副本,则必须使用“附加”:

venue.VEN_VenueEventTypes.Attach(eventType);

我正在为页面添加代码。问题是DB中的所有内容都设置正确,只是EventTypes表中添加了一个id为空的额外行。您需要使用
Attach
以避免重复的行条目。每次将其添加到
场馆时,您都会创建一个全新的
事件类型<代码>附加
只会添加您想要的
场馆
事件类型
之间的关系。请看一看,这样post行就不是重复的,而是一个ID为空且所有其他字段都为空的行。表中的其他内容都是正确的。外键是正确的,只是添加了一个不需要的带有空值的记录。我正在为页面添加代码。问题是DB中的所有内容都设置正确,只是EventTypes表中添加了一个id为空的额外行。您需要使用
Attach
以避免重复的行条目。每次将其添加到
场馆时,您都会创建一个全新的
事件类型<代码>附加
只会添加您想要的
场馆
事件类型
之间的关系。请看一看,这样post行就不是重复的,而是一个ID为空且所有其他字段都为空的行。表中的其他内容都是正确的。外键是正确的,只是添加了不需要的空值记录。