我正在构建包含报告列表的网络应用,用户可以将其中一些添加到收藏夹中。像复选框这样的过滤器,只显示收藏夹或所有报告。但不知道如何建模:
我有两个实体:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string EmailAddress { get; set; }
public DateTimeOffset LastLogon { get; set; }
}
public class Report
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTimeOffset CreateDate { get; set; }
public string TileColour { get; set; }
public string TileSize { get; set; }
}
我正在考虑创建另一个实体FavouriteReports,但之后如何显示所有报告?
答案 0 :(得分:0)
我认为您需要在模型中配置多个关系,例如:
public class User
{
...
public virtual ICollection<Report> FavouriteReports { get; set;}
}
public class Report
{
...
public virtual ICollection<User> UserFavourites { get; set;}
}
这需要在数据库中创建另一个多对多关系表。你在评论中提到你希望有一种更聪明的方式 - 这是更聪明的方式(以及适当的数据库设计)。
多个表将有两列(userId和reportId),通常主键覆盖两列。