LINQ 엔터티 데이터 판독기가 enum을 지원하지 않습니다.

entity-framework enums sqlbulkcopy

문제

많은 엔티티의 배치 삽입을 수행해야하므로 SqlBulkCopy 클래스를 사용하는 것이 가장 좋은 방법이라고 생각했습니다. 그러나이 클래스는 DataReader 인스턴스에서 작동하지만 내 코드는 T가 내 엔터티 클래스 인 IEnumerable과 작동합니다. 내 IEnumerable을 DataReader로 변환하려면 다음 코드를 발견했습니다. LINQ Entity Data Reader .

이 코드는 제대로 작동하지만 한 가지 문제가 있습니다. 엔티티 유형의 열거 형 속성이 데이터 아더에 포함되어 있지 않으므로 올바르게 삽입되지 않았습니다. 열거 형 속성을 어떻게 인식시킬 수 있습니까?

수락 된 답변

나는 이것이 IsScalarType 을 고려하지 않은 IsScalarType 메쏘드 때문이라는 것을 발견했다. 다음과 같이 IsScalarType 메서드를 수정하면이 문제를 쉽게 해결할 수 있습니다.

private static bool IsScalarType(Type t)
{
    // The || t.IsEnum part is new and makes sure that enums are recognized
    return scalarTypes.Contains(t) || t.IsEnum;
}

이 수정 후 enum 유형도 인식됩니다.



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