有没有一种方法可以使用 DBContext class 访问其 table 是在 OnModelCreating() 中创建的实体,就像使用 DBSet<T> 的方式一样?

Is there a way to use the DBContext class to access a entity whose table was created in OnModelCreating() the way a DBSet<T> is used?

我有两个 类:文章和类别。文章拥有类别。在 DBContext(通过 EntityConfig 文件)中,我配置了以下内容:

    jsConfiguration.OwnsMany(article => article.Categories, s =>
    {
        s.WithOwner();
        s.Property<DateTime>("CreatedDate");
        s.Property<DateTime>("UpdatedDate");
        s.ToTable("ArticleBaseCategories");
    });

请接受我必须以这种方式配置它并且无法使用 DBSet。

我希望能够使用类似于在我的 DBSeedClass 中定义了 DBSet 类别 属性 的语法。例如:

_context.Categories.Where(category => category.Name == "example")

有没有办法在不实际创建 DBSet<> 的情况下做到这一点属性?

没有。模型中的许多不同实体可以将相同的拥有实体类型映射到不同的表,因此 EF 不知道从哪里获取它们。您可以使用 Dapper 和原始 SQL 查询来获取它们。或者抓取一些文章实体,然后在客户端运行.SelectMany(a => a.Categories)