2012-10-26 83 views
1

我是一個精益求精的初學者。我正在瀏覽代碼和構建示例。但是我在檢索數據時遇到問題。 我的代碼如下Dapper:映射程序查詢不會像動態對象映射程序查詢那樣獲取值

Console.WriteLine("Reading Values"); 
      string readSatement = "select * from employee where [email protected] "; 
      IEnumerable<Employee> objEmp1 = con.Query<Employee>(readSatement, 
       new { 
        Id = empId 
       }); 

      var objEmp2 = con.Query(readSatement, new { Id = empId }); 

在此代碼objEmp2從分貝傳遞的ID檢索值。但objEmp1爲對象的屬性提供空值。

Employee類是如下

public class Employee 
    { 

     public int EmpId { get; set; } 
     public string EmpName { get; set; } 
     public int EmpAge { get; set; } 
    } 

的哪些錯誤用的代碼。

+0

數據庫中employee表中的所有列是否與Employee類的屬性匹配?因爲您的Where類中包含Id,這使我相信您的EmpId屬性與數據庫中的Id列名稱不匹配。 –

回答

2

您需要確保所有數據庫列都匹配您用於查詢的類中的屬性,或者返回匹配名稱的列。例如,在上面的查詢中,我相信您可能想要這樣寫:

select Id as EmpId, otherColumn as Propertyname, etc.. from employee 
where Id = @Id