.net 实体框架中导航属性的收藏夹约束
所以我有.net 实体框架中导航属性的收藏夹约束,.net,sql-server,database,entity-framework,relational-database,.net,Sql Server,Database,Entity Framework,Relational Database,所以我有Studentmodel和'Subject'model。而学生与科目之间存在一对多关系主题模型本身由学生创建,因此每个主题与学生有1-1关系 现在,当我试图请求类似于Student.Subjects的内容时,返回的是该用户创建的所有Subjects。但我需要添加最喜欢的逻辑 所以现在,学生可以将“主题”标记为最喜欢的(即使该主题不是由该学生构建的) 我的问题是如何组织数据结构以支持Student.FavoriteSobjects(它可能是用户最喜欢的多个主题) UPD:如果只有学生的自
Student
model和'Subject'model。而学生
与科目
之间存在一对多关系<代码>主题模型本身由学生创建,因此每个主题
与学生
有1-1关系
现在,当我试图请求类似于Student.Subjects
的内容时,返回的是该用户创建的所有Subjects
。但我需要添加最喜欢的逻辑
所以现在,学生可以将“主题”标记为最喜欢的(即使该主题不是由该学生构建的)
我的问题是如何组织数据结构以支持Student.FavoriteSobjects
(它可能是用户最喜欢的多个主题)
UPD:如果只有
学生的自己的科目
可以被标记为最喜欢,那又有什么区别呢。这允许避免多对多关系吗?看起来您需要一个主题
和学生
之间的联接表
即:
公共班级学生
{
公共虚拟集合收藏夹{get;set;}
公共虚拟集合主题{get;set;}
}
公共课宠儿
{
公共虚拟主题主题{get;set;}
公共虚拟学生学生{get;set;}
}
为什么他不能简单地拥有:公共虚拟主题收藏夹{get;set;}公共虚拟集合主题{get;set;}
?另一件事这是非常不寻常的,因为每个科目只有一名学生选修。听起来每个学生都有许多自己喜欢的科目,正如学生在其原始帖子中所规定的那样。FavoriteSubjects
。
public class Student
{
public virtual Collection<Favourite> Favourites { get; set; }
public virtual Collection<Subjects> Subjects { get; set; }
}
public class Favourite
{
public virtual Subject Subject { get; set; }
public virtual Student Student { get; set; }
}