我正在编写一个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方法查看房屋的房间,列表为空。
我可以帮助您使用此代码吗?
提前致谢
答案 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?