2013-06-04 2 views
0

Я пытаюсь создать отношения 1-M (1- *), и я не могу сделать эту работу.asp.net mvc 4 one to many relationship (article - tags)

У меня есть модель модели и модель ArticleTag. Логически я хочу, чтобы статья была связана со многими тегами. В «немодельном» способе я бы сделал 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; } 
} 

Я видел только объекты с идентификатором, но здесь, я думаю, что wouldn подмигнули необходимо, чтобы каждый ряд в ArticleTag таблице имеет свой собственный идентификатор. Разве это не так?

Как его записать? Большое спасибо.

ответ

3

Прежде всего, вам необходимо иметь уникальный идентификатор как для статьи, так и для статьи. Затем вам нужно вставить ArticleID в тег статьи, поскольку субъект должен знать, какие ArticleTags принадлежат к статье. Упрощенный, вот как он должен выглядеть:

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; } 
}