gpt4 book ai didi

c# - 从平面文件加载数据的通用实体

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:51 25 4
gpt4 key购买 nike

基本上我有两个不同的平面文件 Credit & Account 具有不同的记录结构。我已经为它们的页眉、详细信息和页脚记录以及整个文件创建了单独的实体。

文件帐户:

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 类应该是什么样子以及它与实际实体类的关系。

希望我对这个问题很清楚。任何建议表示赞赏

最佳答案

最后这是我得到的通用结构。

我删除了 Account 和 Credit 平面文件实体,现在只有这两个的 detailrecord 实体。

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>();
}
}

关于c# - 从平面文件加载数据的通用实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8001704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com