这根本不需要花哨,它主要是模型我很困惑。 它是一个导师可以向模块发布公告的系统。我已经实现了,但学生需要能够对该公告发表评论。我的应用程序用户有一个isStudent字段来确定用户。
公告模式:
namespace CloserAgainThree.Models
{
public class Announcements
{
public int AnnouncementsId { get; set; }
public string AnnouncementContent { get; set; }
public int ModuleId { get; set; }
public virtual Module Module { get; set; }
public virtual ApplicationUser User { get; set; }
}
}
模块型号:
namespace CloserAgainThree.Models
{
public class Module
{
public int ModuleId { get; set; }
public string ModuleName { get; set; }
public ICollection<Announcements> announcement { get; set; }
}
}
我可以在哪里更改此部分以允许添加评论。对于公告模型,我怎么会喜欢评论模型到公告?
答案 0 :(得分:0)
我认为你应该在代码中完成任何其他事情之前提出这个问题,当项目在你的头脑或纸上时。 Becasue,它是关于实体设计的东西。 &#34; 随着时间的推移进行补充&#34;这种工作是不可接受的。首先,我建议你采取这个course,我相信这在这个意义上会非常有用。
所以,我假设您有三个表,模块,公告和注释,并且您没有使用任何ORM框架。我想,一个模块有公告,公告有评论。
根据这些,我会这样做;
public class Module
{
public int ModuleId { get; set; }
public string ModuleName { get; set; }
}
public class Announcement
{
public int AnnouncementId { get; set; }
public string AnnouncementContent { get; set; }
}
public class Comment
{
public int CommentId { get; set; }
public string Content { get; set; }
}
无需将模块数据保留在公告内,也不需要在评论中公布。我在视图层中需要的是一个绑定和查看的模型。
List<Announcement> listofAnnouncement = dbContext.getAnnouncementByModuleId(int moduleId);
/* For example, showing the 3rd announcement on the screen */
Announcement announcementOnScreen = listofAnnouncement.Find(x => x.AnnouncementId == 3);
/* Get comments */
List<Comment> listOfComment = dbContext.getCommentsByAnnouncementId(AnnouncementOnScreen.AnnouncementId);
/*Then bind the comments*/
希望我做对了,这有帮助。