【问题标题】:Entity framework raw SQL Query实体框架原始 SQL 查询
【发布时间】:2013-08-07 06:52:05
【问题描述】:

我必须从数据库中选择多个列,但我没有匹配的实体。 所以我的查询看起来像这样:

var result = _dbContext.Database.SqlQuery<List<string>>(
             "select ID, NAME, DB_FIELD from eis_hierarchy");

我得到结果集,每行包含字符串列表,但计数为 0。

那么如何使用Database.SqlQuery 选择多个列?

【问题讨论】:

    标签: c# .net entity-framework


    【解决方案1】:

    您必须将结果捕获到具有匹配属性名称的类中,以及(至少)一个无参数构造函数:

    class DbResult
    {
        public int ID { get; set; }
        public string NAME { get; set; }
        public string DB_FIELD { get; set; }
    }
    
    var result = _dbContext.Database.SqlQuery<DbResult>(
                     "select ID, NAME, DB_FIELD from eis_hierarchy");
    

    【讨论】:

    • 我发现这很好用——除非 SP 结果字段的名称类似于“未分配空间”,这显然不能用作 .NET 属性名称。有人知道在这种情况下该怎么做吗?
    • 可能使用别名:select [unallocated space] AS unallocated_space from Table.
    最近更新 更多