实施Tag数据库

时间:2016-05-14 19:19:45

标签: asp.net asp.net-mvc entity-framework asp.net-mvc-4

大家好,我是Asp.net Mvc的新手,需要一些帮助来改进,在我正在工作的项目中,我需要注册一个用户,在注册表中用户必须选择一些标签这是与我的网站主题相关的类别,问题是我有一个看起来像这样的数据库

代码

public int TagId{get;set;}
public string TagName{get;set;}
public string TagColor{get;set;}

TagUser

public int TagUserId{get;set;}
public int UserId{get;set;}

我读到EF在有多对多关系时构造表,它会自动构建中间表,所以在我的情况下,我只需要拥有第一个模型和我的用户模型吗?或者我应该使用上面的2个模型加上用户模型,第二种方法我不知道如何关联数据我可以将TagUserId定义为主键,将UserId定义为foreignkey并将表关联起来,但我需要这个吗?或者我可以用第一种方法做到这一点,如果有人可以给我一个提示我很感激。 :)

Ps:抱歉我的英文不好

1 个答案:

答案 0 :(得分:0)

您可以在Tags类中保留IList<Tag>类型的User属性,在UsersTag类中保留IList<User>属性}。实体框架将创建第三个表来存储TagUser之间的多对多关联。

public class Tag
{
   public int Id {set;get;}
   public string TagName {set;get;}
   public virtual IList<User> Users { get; set; }
}
public class User
{
   public int Id {set;get;}
   public string UserName {set;get;}
   public virtual IList<Tag> Tags { get; set; }
}