我在我的直接SQL查询做错了什么

本文关键字:查询 错了 什么 SQL 我的 | 更新日期: 2023-09-27 18:08:59

我的视图模型:

public class LocationsWithHierarchyViewModel
{
    public long Id { get; set; }
    public string Name { get; set; }
    public string Lineage { get; set; }
}

我的查询(在SQL中测试,工作):

        string cmd = string.Format(@"
            SELECT Locations.Id, Locations.Name, LocationHierarchy.Lineage
            FROM Locations
            LEFT JOIN LocationHierarchy
            ON Locations.Id = LocationHierarchy.Id
            WHERE OfficeId = {0}; 
            ", 1);

我确定导致问题的那部分代码:

var locationsInOffice = db.Database.SqlQuery(cmd).ToList<LocationsWithHierarchyViewModel>();

错误在于必须为数据指定返回类型,即List。如何?

注:-"db"是我们的数据库上下文,我不能使用它与一个正常的EF查询,因为我们没有一个模型的LocationHierarchy表,长话长说。

方法的类型参数"System.Data.Entity.Database.SqlQuery(字符串,Parmsobject[]_'不能从用法中推断出来。尝试指定类型论点明确。

我在我的直接SQL查询做错了什么

错误提示:明确指定类型参数

db.Database.SqlQuery<LocationsWithHierarchyViewModel>(cmd).ToList()