데이터베이스의 행을 객체 목록에 매핑하는 방법은 무엇입니까?

c# dapper filehelpers

문제

다음은 객체 및 .txt 파일의 예제 클래스입니다. 필자는 filehelpers를 사용하여이 클래스를 만든 다음 FileHelpers를 사용하여 .txt 파일을 읽고이 파일을이 객체로 변환하여 List에 저장합니다.

.txt 파일 :

1122233
4455566

예제 수업 :

[FixedLengthRecord(FixedMode.AllowLessChars)]
public class Example
{

    [FieldFixedLength(2)]
    public string first;

    [FieldFixedLength(3)]
    public string second;

    [FieldFixedLength(2)]
    public string third;
}

이것을 filehelpers로 읽으면 Example의 2 개의 객체가 생깁니다. 첫 번째 Example.first 값은 '11'입니다. List를 DataTable로 변환하고 SqlBulkCopy를 사용하여이 데이터를 데이터베이스에 푸시합니다. 이 모든 것이 잘 진행됩니다.

데이터베이스의 테이블에는 열 이름이있는 3 개의 열 (varchar) 만 있습니다. 첫째, 둘째 및 셋째.

데이터베이스에서 데이터를 다시 가져 와서 목록으로 다시 매핑하려고하면 다음과 같은 코드가 사용됩니다 (Dapper 사용).

IDbConnection connection = new SqlConnection(connectionString);
var rows = connection.Query<Example>("select * from examplesTable");
        foreach (Example e in rows)
        {
            examples.Add(e);    //List<Example> examples
        }

이렇게하면 정확한 행 수가 반환되지만 객체에서 데이터를 가져 오려고하면 null 데이터가 포함됩니다. 나는 내가 뭘 잘못하고 있는지 알 수 없다.

수락 된 답변

SQL 대량 삽입 전에 올바르게로드 된 데이터가 있는지 확인한 다음 대량 삽입에서 오류가 발생하지 않는지 확인합니다.

SQL Management Studio의 테이블에 올바른 데이터가 있습니까?

올바른 데이터가있는 경우 데이터 테이블로 읽으려고하면 다시 가져온 것이 무엇인지 알 수 있습니다. 특정 유형이 아닌 객체 값이됩니다.


인기 답변

foreach (Example e in rows) 작성하는 것은 불가능합니다. foreach (Example e in rows) 생성자를 만들어 각 행의 데이터를 기반으로 Example의 객체를 만들어야합니다. 좀 닮았을거야.

foreach (DaraRow r in rows)
        {
            Example e = new Examaple(r["First"],r["Second"]);
            examples.Add(e);    //List<Example> examples
        }


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