我正在使用Entity Framework,我有一个名为HomesClass的类,我在编辑方法中使用了这一行:
HomesClass homesClass = db.Data.Find(id);
所以我试着像这样做另一行
HomesClass homesClass = db.Data.SqlQuery("SELECT ....");
但后来我收到了这个错误:
Cannot implicitly convert type 'System.Data.Entity.Infrastructure.DbSqlQuery<Project.Models.HomesClass>' to ‘Project.Models.HomesClass'
我的问题是如何正确转换?
答案 0 :(得分:0)
您的原始代码失败,因为db.Data.SqlQuery("SELECT ....")
会转换为DbSqlQuery
类型的实例,该实例与您的类型HomesClass
无关。
DbSqlQuery
的实例只是一个包含查询的对象,而不是执行它的结果
您需要执行查询,以便将结果转换为实际保存您所追踪数据的对象。您可以通过调用DbSqlQuery实例上的方法来执行查询,该实例要求它执行查询。
您遗失FirstOrDefaultAsync
。
HomesClass homesClass = await db.Data.SqlQuery("SELECT ....").FirstOrDefaultAsync();
如果你想要一个清单:
List<HomesClass> result = await db.Data.SqlQuery("SELECT ....").ToListAsync();
答案 1 :(得分:-1)