DbSet包含DbSet的组

本文关键字:DbSet 的组 包含 | 更新日期: 2023-09-27 18:14:20

我目前正在使用实体框架为我正在创建的应用程序,但我很新鲜,所以有些事情让我感到困惑。

我有一个简单的问题,但我找不到答案。

是否可以在DbSet中存储DbSet?比如说,我想让我的用户分组。每组应该有自己的一组文章,客户等。

我的想法是这样的:

public class Context : DbContext
{
    public DbSet<Group> Groups { get; set; }
}
public class Group: DbContext
{
    public List<User> Members { get; set; }
    public DbSet<Article> Articles { get; set; }
    public DbSet<Customer> Customers { get; set; }
}

然后我将像这样调用文章:

context.Groups.Find(GetGroupIdOfLoggedInUser()).Articles.Find(id);

这是可能的吗?如果是,这是一个好的解决方案吗?有没有更好的方法?

问候,罗宾

DbSet包含DbSet的组

第一:将DbSet视为SQL表。所以,你不能把一个表放到一个表里面。

第二:大卫完全正确。您需要执行以下操作:

public class Context : DbContext
{
    public DbSet<Group> Groups { get; set; }
}
public class Group
{
    public List<User> Members { get; set; }
    public List<Article> Articles { get; set; }
    public List<Customer> Customers { get; set; }
}