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

Posted

技术标签:

【中文标题】将对象添加到列表后,我的列表为空【英文标题】:My list is empty after adding an object to the list 【发布时间】:2014-02-09 06:03:25 【问题描述】:

我正在编写一个 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】:

Entity Framework 和 LinqToSql 自动加载相关实体

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

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

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

【讨论】:

以上是关于将对象添加到列表后,我的列表为空的主要内容,如果未能解决你的问题,请参考以下文章

.net 核心请求列表参数始终为空

发布时我的模型中的对象列表为空

无法添加以太坊对等点。对等列表为空

Android 应用内计费响应列表为空

Python:将地图对象转换为列表会使地图对象为空?

返回片段后ListView为空