'无法为'...'创建DbQuery,因为它不是查询类型。而是使用DbContext.Set方法创建一个DbSet。

时间:2019-08-04 00:55:37

标签: sql entity-framework ef-code-first entity-framework-core ef-core-2.2

我有一个使用

创建的实体
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<MyEntity>().HasKey(c => c.Id);
        // ... other setup
    }

当我尝试使用

进行查询时
dbContext.Query<MyEntity>()

我得到了例外

  

无法为'MyEntity'创建DbQuery,因为它不是查询类型。   改用DbContext.Set方法创建一个DbSet

据我了解,在EF Core中,“实体”与“您可以查询的实体”有所不同。

我尝试添加

        modelBuilder.Entity<MyEntity>().HasKey(c => c.Id);
        modelBuilder.Query<MyEntity>();

但是我得到了错误

  

无法将实体类型“ MyEntity”添加到模型中,因为   具有相同名称的查询类型。

当我创建新迁移时。

所以我必须在MyEntity上创建包装器并将其添加为查询吗?我是否必须为每个实体完成此练习?我设计不同的阅读模型的想法吗?在这里帮助我。

0 个答案:

没有答案