0

1-M 関係 (1-*) を作成しようとしていますが、うまくいきません。

Article モデルと ArticleTag モデルがあります。論理的には、多くのタグでリンクされた記事が必要です。「非モデル」の方法では、これら 2 つのモデルに従って 2 つのテーブルを作成します。

public class Article
{ 
    public int ArticleID { get; set; }
    public string Title { get; set; }
    public DateTime Date { get; set; }
    public string Anotation { get; set; }
    public string Body { get; set; }
    public string SourceLink { get; set; }
    public virtual ICollection<ArticleTag> ArticleTags { get; set; }
}

public class ArticleTag
{
    public int ArticleID { get; set; } //FK of the Article
    public string TagName { get; set; }
}

ID を持つエンティティしか見たことがありませんが、ここでは、ArticleTag テーブルのすべての行に独自の ID がある必要はないと思います。ではない?

どのように記載すればよいですか?ありがとう。

4

1 に答える 1

3

まず、ArticleTag と Article の両方に一意の ID が必要です。次に、どの ArticleTags が Article に属しているかをエンティティが知る必要があるため、ArticleID を Article Tag に挿入する必要があります。簡略化すると、次のようになります。

public class Article
{ 
public int ArticleID { get; set; }
public string Title { get; set; }
public DateTime Date { get; set; }
public string Anotation { get; set; }
}

public class ArticleTag
{
public int ArticleTagID { get; set; } 
public int ArticleID { get; set; } //This creates the link 1-M
public string TagName { get; set; }
}
于 2013-06-04T20:49:50.633 に答える