C#实体框架调用sp_spaceused

时间:2019-11-07 15:09:12

标签: c# sql entity-framework

这是我的代码:

public class CSpaceUsed
{
    string database_name { get; set; }
    string database_size { get; set; }
    string unallocated_space { get; set; }
    string reserved { get; set; }
    string data { get; set; }
    string index_size { get; set; }
    string unused { get; set; } 
}

public void  CheckDatabaseSize()
{
  var result = _dbEnergyContext.Database.SqlQuery<CSpaceUsed>("sp_spaceused @oneresultset = {0}", 1).ToList();
}

对于所有字段,除 unallocated_space (为空)外,我都得到正确的结果。我从SQL查询的结果中使用了相同的列名:

EXEC sp_spaceused @oneresultset = 1

但是列名未分配空间不能与C#一起使用,因此我使用了下划线。

任何线索如何获取未分配的空间值?

我在某处读到这是一个未解决的问题。是这样,还是有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

您需要使用Column属性注释属性,以便向EF告知列名映射。

public class CSpaceUsed
{
    string database_name { get; set; }
    string database_size { get; set; }
    [Column("unallocated space")]
    string unallocated_space { get; set; }
    string reserved { get; set; }
    string data { get; set; }
    string index_size { get; set; }
    string unused { get; set; } 
};