2

如果 BO 被标记为带有 [key] 的密钥,为什么 dapper 会出现错误?

[Table("tblWebReadyToWorkQualifications")]
public class TeacherQualificationBO
{
    [Key]
    public int TeacherID { get; set; }

    public string ReadyToWorkGuid { get; set; }

    public int QualificationID { get; set; }

}

调用引发异常的 dapper

      public IEnumerable<TeacherQualificationBO> GetTeacherQualifications(int TeacherID)
      {
        using (var connection = GetOpenConnection())
        {
            return connection.Get<IEnumerable<TeacherQualificationBO>>(TeacherID);
        }
      }

该表tblWebReadyToWorkQualifications在 上有一个主键TeacherID

错误:在 Dapper.Contrib.Extensions.SqlMapperExtensions.Get[T](IDbConnection connection, Object id, IDbTransaction transaction, Nullable`1 commandTimeout) in d:\egna projekt\dapper-dot-net\Dapper.Contrib\SqlMapperExtensions.cs :第 128 行\r\n

4

1 回答 1

2

错误消息可能试图告诉您泛型类型IEnumerable<TeacherQualificationBO>没有 [Key] 属性,这是真的。只有类型TeacherQualificationBO可以。

改变

return connection.Get<IEnumerable<TeacherQualificationBO>>(TeacherID);

return connection.Get<TeacherQualificationBO>(TeacherID);

您还需要更改函数的返回类型TeacherQualificationBO以反映这一点。您声明这TeacherID是一个主键(因此是唯一的),因此TeacherID只会对应于一条记录。因此,不返回集合是有意义的。

于 2017-06-06T20:57:41.743 回答