대괄호 C # : 열 개체를 TypeID 및 TypeName으로 분할

dapper

문제

나는 더러운 것을 사용하고 있고 나누고 싶다.

Class EType
{
    int TypeID;
    string TypeName;
}

Class Employee
{
    int id;
    string location;
    EType EmpType;
}

직원 테이블 :

ID||Location||TypeID||TypeName

Dapper를 사용하는 CRUD 작업 중에 EmpType을 DB의 각 열로 자동 변환하려고합니다. 유형 핸들러와 사용자 정의 맵. 그러나 행운이 없다 :(.

도움이 필요하십니까?

수락 된 답변

먼저 필드가 아닌 속성을 사용해야합니다. 그런 다음 Dapper의 다중 매핑을 사용하십시오 .

public class Employee
{
    public int Id { get; set; }
    public string Location { get; set; }
    public EType EType { get; set; }
}

public class EType
{
    public int TypeId { get; set; }
    public string TypeName { get; set; }
}

[TestFixture]
public class MultimappingTest
{
    [Test]
    public void TestSplit()
    {
        using (var conn = new SqlConnection(@"Data Source=.\sqlexpress;Integrated Security=true; Initial Catalog=foo"))
        {
            var result =
                conn.Query<Employee, EType, Employee>(@"select Id = 1, Location = 'earth', TypeId = 2, TypeName = 'human'",
                    (employee, type) =>
                    {
                        employee.EType = type;
                        return employee;
                    }, splitOn: "TypeId").First();

            Assert.That(result.EType.TypeId == 2);
            Assert.That(result.EType.TypeName == "human");
        }
    }
}


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow