2012-10-26 52 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