sql - '无法为 '...' 创建 DbQuery,因为它不是查询类型。改用 DbContext.Set 方法创建 DbSet。
问题描述
我有一个我创建的实体
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
并将其添加为查询?我是否必须对每个实体都进行此练习?我的想法是设计不同的读取模型吗?帮帮我。
解决方案
推荐阅读
- git - Cherry-pick 在不存在的文件中进行更改
- reactjs - 我无法访问参数数据,我一直不确定
- r - 将具有多个参数的函数快速应用于大型 data.table 的变量
- python - 从网站抓取电子邮件信息时遇到问题
- java - java.net.SocketTimeoutException:连接超时
- azureservicebus - MassTransit 不会更新现有 Azure 服务总线队列的设置
- javascript - JS Array NEQ 操作的最佳性能操作
- java - 由于未能在我的 Java 类文件中呈现 Button 小部件,我的 Android 应用程序不断崩溃
- javascript - 签名验证错误 - ADFS - SAML2
- java - 简化类似 API 调用的使用