0

シンプルな MVC 5 インターネット アプリケーションをコーディングしています。ここに私のモデルがあります:

public class House
{
    [Key]
    public int Id { get; set; }
    public string name { get; set; }
    public virtual ICollection<Room> rooms { get; set; }
    public int itemId { get; set; }
    public virtual Item item { get; set; }

    public House()
    {
        rooms = new List<Room>();
    }
}

public class Room
{
    [Key]
    public int Id { get; set; }
    public int roomNumber { get; set; }

    public int houseId { get; set; }
    public virtual House house { get; set; }

    public int itemId { get; set; }
    public virtual Item item { get; set; }
}

public class Item
{
    [Key]
    public int Id { get; set; }
    public string name { get; set; }
}

House コントローラーで Index アクションの結果を読み込むと、次のエラーが発生します。

Introducing FOREIGN KEY constraint 'FK_dbo.Rooms_dbo.Items_itemId' on table 'Rooms' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.

これを正しくコーディングするための助けをお願いできますか?

前もって感謝します

編集

ForeignKeyフィールドの外部キー フィールドに属性を追加しました。

public class House
{
    [Key]
    public int Id { get; set; }
    public string name { get; set; }
    public virtual ICollection<Room> rooms { get; set; }
    public int itemId { get; set; }
    [ForeignKey("itemId")]
    public virtual Item item { get; set; }

    public House()
    {
        rooms = new List<Room>();
    }
}

public class Room
{
    [Key]
    public int Id { get; set; }
    public int roomNumber { get; set; }

    public int houseId { get; set; }
    [ForeignKey("houseId")]
    public virtual House house { get; set; }

    public int itemId { get; set; }
    [ForeignKey("itemId")]
    public virtual Item item { get; set; }
}

public class Item
{
    [Key]
    public int Id { get; set; }
    public string name { get; set; }
}

私はまだ同じエラーが発生しています。

4

1 に答える 1