2017-08-11 30 views
0

我使用實體框架和我有這個類EF - 類SqlQuery - 沒有在具有相同名稱的數據讀取相應的列

public partial class TipoRequisicaoSubCategoria 
    { 
     public TipoRequisicaoSubCategoria() 
     { 
      this.Formularios = new HashSet<Formulario>(); 
     } 

     public int Id { get; set; } 
     public int IdTipoRequisicao { get; set; } 
     public int IdSubcategoria { get; set; } 

     public virtual ICollection<Formulario> Formularios { get; set; } 
     public virtual subcategoria Subcategoria { get; set; } 
     public virtual TipoRequisicao TipoRequisicao { get; set; } 
    } 

表是

Table: tipo_requisicao_subcategoria 
Columns: 
ID_TIPO_REQUISICAO_SUBCATEGORIA int(11) AI PK 
ID_TIPO_REQUISICAO int(11) 
ID_SUBCATEGORIA 

如果我使用linq進行搜索,結果是完美的,但是當我嘗試使用SqlQuery方法進行搜索時,我得到以下消息:「」數據讀取器與指定的'medicEntities.TipoRequisicaoSubCategoria'不兼容。該類型的成員,「ID」,沒有在具有相同名稱的數據讀取相應的列「

下面是我使用的查詢:

return _context.tipo_requisicao_subcategoria.SqlQuery(string.Format(@"SELECT TS.* FROM tipo_requisicao_subcategoria TS INNER JOIN 
                              tipo_requisicao T ON T.ID_TIPO_REQUISICAO = TS.ID_TIPO_REQUISICAO 
                              WHERE T.ID_ESPECIALIDADE = {0}", idEspecialidade)).ToList(); 

PS:我首先使用數據庫

+0

首先,在EDMX文件中檢查表格映射的細節。那個'ID_TIPO_REQUISICAO_SUBCATEGORIA'已經映射到生成的表類的'Id'屬性了嗎?或者,也許非映射/映射到另一個屬性呢? –

回答

1

該消息表示SQL查詢的結果不包含名爲Id的列。在本例中,我將列名分別更改爲「Id」,「IdTipoRequisicao」和「IdSubcategoria」。

SELECT 
TS.ID_TIPO_REQUISICAO_SUBCATEGORIA as Id, 
TS.ID_TIPO_REQUISICAO as IdTipoRequisicao, 
TS.ID_SUBCATEGORIA as IdSubcategoria 
FROM tipo_requisicao_subcategoria TS INNER JOIN 
tipo_requisicao T ON T.ID_TIPO_REQUISICAO = TS.ID_TIPO_REQUISICAO 
WHERE T.ID_ESPECIALIDADE = {0} 
+0

工程就像一個魅力!謝啦! –

相關問題