0

このメソッドでは、新しいアイテム (部屋) をデータベースに挿入しています。そのプロセスは期待どおりに機能します。

でも、それに加えて、部屋を追加するたびに、最初のピースとして家具を追加したいと思っています。家具タイプの各アイテムには、その場所を指定する「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();
    }
}
4

2 に答える 2

1

何を挿入したいかをデータベースに伝える行を追加する必要があります。例えば、

uni.Rooms.InsertOnSubmit(Room object);
uni.Furniture.InsertOnSubmit(furniture piece);

この後、あなたはあなたの

uni.SubmitChanges();

ライン。

于 2013-06-06T17:51:50.080 に答える
0

私は最終的に弾丸をかみ、dbml を消去し、テーブルを削除して再作成し、dbml を再作成しました。Furniture.RoomID 列が正しく更新されるようになりました。まったく満足できない、不器用で力ずくのアプローチだと私は知っています。

于 2013-06-08T04:46:37.630 に答える