2011-11-03 3 views
2

기본적으로 두 개의 다른 플랫 파일이 있습니다. 크레딧 & 다른 레코드 구조를 가진 계정입니다. 헤더, 세부 사항 및 바닥 글 레코드와 전체 파일에 대해 별도의 엔티티를 작성했습니다.플랫 파일에서 데이터를로드하는 일반 엔터티

파일 계정 :

namespace Data.Entities 
{ 
    [FlatFileContainerRecord(RecordLength = 100)] 
    public class AccountFlatFile 
    { 
     public AccountHeader Header { get; set; } 
     public List<Data.Entities.AccountDetail> Details { get; set; } 
     public AccountFooter Control { get; set; } 
     public AccountFlatFile() 
    { 
     Details = new List<AccountDetail>(); 
} 

파일 신용 :

namespace Data.Entities 
{ 
    [FlatFileContainerRecord(RecordLength = 90)] 
    public class CreditFlatFile 
    { 
     public CreditHeader Header { get; set; } 
     public List<Data.Entities.CreditDetail> Details { get; set; } 
     public CreditFooter Control { get; set; } 
     public CreditFlatFile() 
    { 
     Details = new List<CreditDetail>(); 
    } 
} 

나는 파일을 실행하는 일반적인 작업을 만들었습니다. 이것은 내가 붙어있는 곳이다.

foreach (string file in incomingFile) 
{ 
     GenericFile<T> genericFile = new GenericFile<T>();     
     using (Stream stream = File.OpenRead(file)) 
     { 
      **genericFile = serializer.Deserialize<GenericFile<T>>(stream);** 
     } 

     if (genericFile.Details.Count > 0) 
     { 
       System.Threading.Tasks.Parallel.For(0, genericFile.Details.Count, parallelOptions, index => 
       { 

        Repo.Upsert(genericFile.Details[index]); 
       }); 
     } 
     else 
     { 
         //log error 
      } 

} 

GenericFile 클래스의 모양과 실제 엔티티 클래스와의 관계를 잘 모르겠습니다.

희망과 함께 나는 분명하다. 어떤 제안이라도 환영받습니다

+0

이 질문은 매우 불분명합니다. 나는 문제가 무엇인지, 또는 우리가하고 싶은/뭘 원하는지 잘 모르겠습니다. –

+0

GenericFile 클래스를 어떻게 정의해야하는지 알고 싶습니다. – Netswannabe

+0

나는 그것을 놓치고 있을지 모르지만 그 클래스가하고 싶은 행동에 대해 많이 이야기하는 곳을 볼 수는 없다. 그래서 우리는 어떻게 알 수 있을까? –

답변

0

마지막으로 이것은 일반적인 구조입니다.

저는 계정 및 신용 플랫 파일 엔티티를 제거했으며 이제는이 둘에 대한 세부 레코드 엔티티 만 있습니다.

namespace Data.Entities 
{ 
    [FlatFileContainerRecord(RecordLength = 157)] 
    public class FlatFile<FlatFileHeader, DT, FlatFileFooter> 
    { 
     public FlatFileHeader Header { get; set; } 
     public List<DT> Details { get; set; } 
     public FlatFileFooter Control { get; set; } 
     public FlatFile() 
    { 
     Details = new List<DT>(); 
    } 
} 
관련 문제