1

Entity Framework を使用して ASP.NET MVC 3 でデータベースを設計する際に問題が発生しています。私はいくつかのチュートリアルに従い、自分のニーズに適応しようとしました。初めてASPを利用...

Person、Category、および Example の 3 つのテーブルがあります。

1 つの例は、人物に属するカテゴリに含まれます。逆に、1 人の人物が複数のカテゴリを持ち、それぞれに複数の例が含まれる場合があります。

2 つの「1 対多」の関係で設計する必要があると思います。それが私のモデルです:

public class Person 
{
  public int PersonID {get; set;}
  public int Name {get; set;}
  public string Text {get; set;}
  public virtual ICollection<Category> {get; set;}
}

public class Category
{
  public int CategoryID {get; set;}
  public int PersonID {get; set;}
  public string Name {get; set;}
  public virtual ICollection<Examples> Examples {get; set;}
  public virtual Person Person {get; set;}
}

public class Examples
{
  public int ExamplesID {get; set;}
  public int CategoryID {get; set;}
  public string Title {get; set;}
  public string Body {get; set;}
  public virtual Category Category {get; set;}
}

@Html.DropDownList ヘルパーを使用しても、Category と Person を作成できます。問題は、例を作成しようとするときです。2 番目のドロップダウンに Ajax を入力したかったのですが、それができず、突然私は私のデータベース設計に欠陥がある可能性があることを認識してください。私の例のモデルでは、カテゴリを格納しますが、人物は格納しません。後者はすでにカテゴリ モデルにバインドされているためですよね?

私はちょっと迷っています...必要に応じて、コントローラーやビューを投稿できますが、問題はモデルにあると思います。

4

1 に答える 1

0

これを試してください:

public class Person 
{
  public int PersonID {get; set;}
  public int Name {get; set;}
  public string Text {get; set;}

  [ForeignKey("PersonID")]
  public virtual ICollection<Category> {get; set;}
}

public class Category
{
  public int CategoryID {get; set;}
  public int PersonID {get; set;}
  public string Name {get; set;}

  [ForeignKey("CategoryID")]
  public virtual ICollection<Examples> Examples {get; set;}

  [ForeignKey("PersonID")]
  public virtual Person Person {get; set;}
}

public class Examples
{
  public int ExamplesID {get; set;}
  public int CategoryID {get; set;}
  public string Title {get; set;}
  public string Body {get; set;}
  public virtual Category Category {get; set;}
}
于 2013-06-04T13:57:07.357 に答える