将对象添加到列表后,我的列表为空

时间:2014-02-09 06:03:26

标签: c# list asp.net-mvc-4 visual-studio-2012 controller

我正在编写一个MVC4 C#互联网应用程序,当我成功将对象保存到列表中时,当我在另一个函数中获得该列表的列表时,该列表为空。

这是我的代码:

public class House
{
    public House()
    {
        Rooms = new List<Room>();
    }

    [Key]
    public int id { get; set; }
    public int StreetNumber { get; set; }
    public string StreetName { get; set; }
    public string City { get; set; }

    public List<Room> Rooms { get; set; }
}

public class Room
{
    [Key]
    public int id { get; set; }
    public int RoomNumber { get; set; }
    public string RoomOwnersName { get; set; }
}

public class DatabaseContext : DbContext
{
    public DbSet<House> Houses { get; set; }
    public DbSet<Room> Rooms { get; set; }
}

以下是我为房子创建和添加房间的代码:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(int id, Room room)
{
    if (ModelState.IsValid)
    {
        House houseToAddRoomsTo = db.Houses.Where(h => h.id == id).FirstOrDefault();
        houseToAddRoomsTo.Rooms.Add(room);
        db.SaveChanges();
        return RedirectToAction("Index", id);
    }

    return View(room);
}

这是我的代码,以获取房屋的房间列表:

public ActionResult Index(int id)
{
    RoomsViewModel roomsViewModel = new RoomsViewModel();
    roomsViewModel.HouseID = id;
    roomsViewModel.Rooms = db.Houses.Where(h => h.id == id).First().Rooms.ToList();
    return View(roomsViewModel);
}

在我创建了一个房间,并将这个房间添加到房子后,我调用Index方法查看房屋的房间,列表为空。

我可以帮助您使用此代码吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

实体框架或LinqToSql自动加载相关实体

将它们设置为急切或延迟加载

http://msdn.microsoft.com/en-us/data/jj574232.aspx(实体框架)

In linq to sql how do I include the child entity with initial query?

相关问题