Dapper 예외 - 가져 오기 [Key] 속성을 가진 엔티티 만 지원하지만 [key]는 정의 됨

c# dapper dapper-contrib sql-server

문제

BO가 [key]로 키가있는 것으로 표시된 경우, 왜 오류로 인해 더 이상합니까?

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

    public string ReadyToWorkGuid { get; set; }

    public int QualificationID { get; set; }

}

예외를 throw하는 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 연결, 개체 ID, IDbTransaction 트랜잭션, Nullable`1 commandTimeout) d : \ egna 프로젝트 \ dapper-dot-net \ Dapper.Contrib \ SqlMapperExtensions.cs에서 가져 오기 : 128 줄 \ r \ n

인기 답변

오류 메시지는 아마도 generic 형식 IEnumerable<TeacherQualificationBO> 에 [Key] 특성이 없다는 것을 알려주려고합니다. 이는 사실입니다. TeacherQualificationBO 유형 만 수행합니다.

변화

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

return connection.Get<TeacherQualificationBO>(TeacherID);

또한 이것을 반영하기 위해 함수의 반환 유형을 TeacherQualificationBO 로 변경해야합니다. TeacherID 는 기본 키이므로 (고유 한) TeacherID 는 단일 레코드에만 해당합니다. 따라서 컬렉션을 반환하지 않는 것이 좋습니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.