このメソッドでは、新しいアイテム (部屋) をデータベースに挿入しています。そのプロセスは期待どおりに機能します。
でも、それに加えて、部屋を追加するたびに、最初のピースとして家具を追加したいと思っています。家具タイプの各アイテムには、その場所を指定する「RoomID」があります。したがって、Room には Furniture のコレクションが含まれます。以下は、データベースの「プライマリ」家具で、部屋の家具コレクションに追加し、変更を送信しています。部屋はデータベースに追加されますが、Furniture.RoomID 列は null のままです。
public void AddResidentToUniverse(int residentID, int universeID)
{
Universe uni = _context.Universes.FirstOrDefault(u => u.UniverseID == universeID);
Resident res = _context.Residents.FirstOrDefault(r=>r.ResidentID == residentID);
if (uni != null && res!=null)
{
Room e = new Room();
Furniture primary = _context.Furnitures.FirstOrDefault(p => p.FurnitureID == new FurnitureController().GetPrimary(universeID).FurnitureID);
e.UniverseID = uni.UniverseID;
e.RoomName = res.RootName;
e.ResidentID = residentID;
e.Expired = null;
e.Furniture.Add(primary);
uni.Rooms.Add(e);
_context.SubmitChanges();
}
}