我如何模拟这种关系?

时间:2015-12-16 13:19:02

标签: asp.net entity-framework

我正在构建包含报告列表的网络应用,用户可以将其中一些添加到收藏夹中。像复选框这样的过滤器,只显示收藏夹或所有报告。但不知道如何建模:

我有两个实体:

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,但之后如何显示所有报告?

1 个答案:

答案 0 :(得分:0)

我认为您需要在模型中配置多个关系,例如:

public class User
{
    ...
    public virtual ICollection<Report> FavouriteReports { get; set;}
}

public class Report
{
    ...
    public virtual ICollection<User> UserFavourites { get; set;}
}

这需要在数据库中创建另一个多对多关系表。你在评论中提到你希望有一种更聪明的方式 - 这是更聪明的方式(以及适当的数据库设计)。

多个表将有两列(userId和reportId),通常主键覆盖两列。