基本上我有两个不同的平面文件Credit&具有不同记录结构的帐户。我为其Header,Detail和Footer记录以及整个文件创建了单独的实体。
档案帐号:
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)
最后,这是我得到的通用结构。
我删除了帐户和信用平面文件实体,现在只有这两个的详细记录实体。
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>();
}
}