【问题标题】:Favorite constraint for navigation property in Entity Framework实体框架中导航属性的收藏约束
【发布时间】:2015-02-06 00:14:11
【问题描述】:

所以我有Student 模型和“主题”模型。 StudentSubject 之间存在一对多的关系。 Subject 模型本身由学生创建,因此每个 SubjectStudent 具有 1-1 关系。

现在,当我尝试请求 Student.Subjects 之类的内容时,它返回的都是我这个用户创建的 Subjects。但我需要添加最喜欢的逻辑。

所以现在,学生可以将“主题”标记为最喜欢的(即使该主题不是由该学生构建的。)

我的问题是我应该如何组织数据结构来支持Student.FavoritesSubjects(它可能是用户喜欢的多个主题)


UPD:如果只有Student's 拥有Subject 可以标记为收藏,那有什么区别。这是否允许避免多对多关系?

【问题讨论】:

    标签: .net sql-server database entity-framework relational-database


    【解决方案1】:

    看起来您需要在SubjectsStudents 之间建立一个连接表。

    即:

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

    【讨论】:

    • 他为什么不能简单地拥有:public virtual Subject Favourite { get; set; } public virtual Collection&lt;Subjects&gt; Subjects { get; set; }?另一件非常不寻常的事情是每个科目只有一名学生参加。
    • 好像每个学生都有很多收藏,正如他原帖中Student.FavoritesSubjects所规定的那样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 2016-05-29
    • 1970-01-01
    相关资源
    最近更新 更多