在linq表映射中将多个表分配给单个类

本文关键字:分配 单个类 linq 映射 | 更新日期: 2023-09-27 18:28:43

在处理Linq时,我可能问错了这个问题。我一直在寻找一个解决方案,我唯一想到的是继承是答案的可能性,但我不知道如何在这种情况下使用它。我正在使用c#,并为一个表创建了一个类:

[Table(Name = "CommonDocumentData1800")]
public class CommonDocumentRecordData
{
    [Column]
    public string RecordID;
    [Column]
    public int? StartYear;
    [Column]
    public int? EndYear;
    [Column]
    ....
}

我有多个表(例如CommonDocumentData1800、CommonDocumentData1900和CommonDocumentData2000),但我想使用同一个类,而不是用不同的名称重复该类。我该如何处理?

在linq表映射中将多个表分配给单个类

您可以在linq查询中包含多个可枚举对象。为了填充CommonDocumentRecordData对象,您可以执行以下操作:

var allTables = (from t1800 in  CommonDocumentData1800.AsEnumerable()
                 select new CommonDocumentRecordData
                {
                 RecordID = t1800.Field<string>("RecordId"),
                 StartYear = t1800.Field<int>("StartYear"),
                 EndYear = t1800.Field<int>("EndYear")
                }).Union(
                from t1900 in  CommonDocumentData1900
                //and so on
                );