我有一个room
,该会议室包含零个或多个devices
。然后我有一个控制器,RoomController
。这是控制器的简化版本:
[ResponseType(typeof(Room))]
public IHttpActionResult Postroom(NewRoom newRoom)
{
...
Room room = new Room();
room.building_id = newRoom.building_id;
...and soforth...
if(newRoom.devices != null)
{
foreach (DeviceNew newDevice in newRoom.devices)
{
Device device = db.Devices.FirstOrDefault(d => d.id == newDevice.id);
room.Devices.Add(device);
}
}
db.SaveChanges();
return Ok(room);
}
控制器正常工作。创建了room
,与任何附加的devices
一样。遗憾的是,如果请求中包含设备,POST
请求永远不会返回任何。也就是说,在Chrome开发工具中,请求将永远“待定”。
如果不是任何设备,请求将按预期返回200
。
同样,控制器正常工作,即使包含devices
也是如此。记录已创建。该路线不会按照应有的方式返回Ok
。
我错过了什么吗?
谢谢!
编辑:
Room
模型(简化):
namespace TheThing.Models_Database
{
using System;
...
public partial class Room
{
public Room()
{
Devices = new HashSet<Device>();
}
public int id { get; set; }
public virtual ICollection<Device> Devices { get; set; }
}
}
Device
模型(简化):
namespace TheThing.Models_Database
{
using System;
...
public partial class Device
{
public Device()
{
...
Rooms = new HashSet<Room>();
}
public int id { get; set; }
...
public virtual ICollection<Room> Rooms { get; set; }
}
}