包含DbSet的DbSet组

时间:2014-07-22 09:34:53

标签: c# entity-framework

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

我有一个简单的问题,我无法找到答案。

是否可以将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);

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

此致 罗宾

1 个答案:

答案 0 :(得分:0)

首先:将DbSet视为您的SQL表。所以,你不能把一张桌子放在桌子里。

第二:DavidG是完全正确的。您需要执行以下操作:

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