Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ';无法为';创建数据库查询';因为它不是查询类型。使用DbContext.Set方法来创建DbSet;_Sql_Entity Framework_Ef Code First_Entity Framework Core_Ef Core 2.2 - Fatal编程技术网

Sql ';无法为';创建数据库查询';因为它不是查询类型。使用DbContext.Set方法来创建DbSet;

Sql ';无法为';创建数据库查询';因为它不是查询类型。使用DbContext.Set方法来创建DbSet;,sql,entity-framework,ef-code-first,entity-framework-core,ef-core-2.2,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 } 模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder) { modelBuilder.Entity

我创建了一个实体

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<MyEntity>().HasKey(c => c.Id);
        // ... other setup
    }
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
modelBuilder.Entity().HasKey(c=>c.Id);
//…其他设置
}
当我尝试查询时

dbContext.Query<MyEntity>()
dbContext.Query()
我有个例外

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

根据我的理解,在EF Core中,“实体”与“可以查询的实体”不同

我试着加进去

        modelBuilder.Entity<MyEntity>().HasKey(c => c.Id);
        modelBuilder.Query<MyEntity>();
modelBuilder.Entity().HasKey(c=>c.Id);
modelBuilder.Query();
但是我得到了错误

无法将实体类型“MyEntity”添加到模型中,因为 已存在同名的查询类型

当我创建新迁移时


那么,我是否必须在MyEntity上创建一个包装器,并将其添加为查询?我是否需要为每个实体进行此练习?我的想法是设计一个不同的阅读模式吗?请帮助我。

错误消息告诉您要做什么-使用
Set
方法而不是
Query
,例如
dbContext.Set()
。虽然返回的
DbSet
可以用于其他操作,但它实现了
IQueryable
,即是读取(和查询)实体(数据库表)的基础。错误消息告诉您要做什么-使用
Set
方法而不是
Query
,例如
dbContext.Set()
。虽然返回的
DbSet
可以用于其他操作,但它实现了
IQueryable
,即是读取(和查询)实体(数据库表)的基础。