将项添加到集合中

时间:2009-09-02 08:49:48

标签: c# entity-framework

我在向集合中添加实体时遇到问题。

public void SaveNotificationUsergroups(int bookingobjectID, int[] NotificationUsergroups)
    {

        BookingObject bo = _entities.BookingObjectSet.Where(b => b.BookingObjectID == bookingobjectID).First();

        bo.UsergroupsBookingNotifications.Load();

        int _currentUsergroupID;

        for (int i = 0; i < NotificationUsergroups.Count(); i++)
        {
            _currentUsergroupID = NotificationUsergroups[i];

            bo.UsergroupsBookingNotifications.Add(_entities.UsergroupSet.Where(ug => ug.UsergroupID == _currentUsergroupID).First();
        }

        _entities.SaveChanges();

    }

我收到错误:

bo.UsergroupsBookingNotifications.Add(_entities.UsergroupSet.Where(ug => ug.UsergroupID == _currentUsergroupID).First();

即:

  

无法转换   'BookingSystem.Data.Models.Usergroup'   至   'BookingSystem.Data.Models.UsergroupsBookingNotifications'

在数据库中,UsergroupsBookingNotifications有“int BookingObjectID”和“int UsergroupID”

需要做什么?

/ M

编辑:

表:

用户组&lt; ---&gt; UsergroupsBookingNotifications&lt; - &gt;预订

2 个答案:

答案 0 :(得分:2)

您收到此错误的原因是因为bo.UsergroupsBookingNotifications是UsergroupsBookingNotifications的集合,并且您正在尝试向其添加Usergroup对象。

此:

_entities.UsergroupSet.Where(ug => ug.UsergroupID == _currentUsergroupID).First();

将返回Usergroup对象。

没有看到你们其他人的对象模型,它有点难以帮助,但这可能就是你要找的东西:

for (int i = 0; i < NotificationUsergroups.Count(); i++)
{
    _currentUsergroupID = NotificationUsergroups[i];

    // Make a new UsergroupsBookingNotifications object
    UsergroupsBookingNotifications notify = new UsergroupsBookingNotifications();

    // Add the bookobject and usergroup
    notify.BookingObject = bo;
    notify.Usergroup = _entities.UsergroupSet.Where(ug => ug.UsergroupID == _currentUsergroupID).First();

    // Add the collection.
    bo.UsergroupsBookingNotifications.Add(notify);
}

就像我说的那样,如果没有更多信息,有点难以帮助,但这可能会让你开始。

答案 1 :(得分:0)

在我看来,您无法将用户组添加到UsergroupsBookingNofication中。我不确定,因为我不知道你的关系是什么。