C# 合并历史表记录asp.net mvc
我正在开发一个asp.net核心mvc项目,我有两个表MyData和MyDataHistorical。这些表由两个不同的表模型类生成,它们具有相同的列,只有不同的名称,MyDataHistorical存储特定时间之前的数据 例如,当我想从其中一个表向视图页面发送数据时,我使用linq查询并将数据设置为表模型类型的列表 但我想绑定日期范围中的数据,该范围包含两个表中的记录。我找不到合并2列表的方法,该列表具有不同的类型 我将表模型类型的列表作为绑定到datatable的json数据发送到视图。但我想发送的“结果”数据包含选定日期范围的MyData和MyDataHistorical记录中的数据。例如,从上个月到现在的记录列表,一些数据在历史表中,另一些在MyData表中C# 合并历史表记录asp.net mvc,c#,asp.net,.net,asp.net-mvc,asp.net-core,C#,Asp.net,.net,Asp.net Mvc,Asp.net Core,我正在开发一个asp.net核心mvc项目,我有两个表MyData和MyDataHistorical。这些表由两个不同的表模型类生成,它们具有相同的列,只有不同的名称,MyDataHistorical存储特定时间之前的数据 例如,当我想从其中一个表向视图页面发送数据时,我使用linq查询并将数据设置为表模型类型的列表 但我想绑定日期范围中的数据,该范围包含两个表中的记录。我找不到合并2列表的方法,该列表具有不同的类型 我将表模型类型的列表作为绑定到datatable的json数据发送到视图。但我
List<MyData> theList = new List<MyData>();
var list=GetData<MyData>(x=>x.date==myDate);
theList=list;
List<MyDataHistorical> theListHistorical = new List<MyDataHistorical>();
var listHistorical=GetData<MyDataHistorical>(x=>x.date==myDate);
theListHistorical=listHistorical;
list = list.Select(x => new MyData
{
Id= x.Id,
Name= x.Name,
DepartmentId=x.DepartmentId
}).ToList();
var result = from s in list select s;
dataTable.data = result.ToArray();
return Json(dataTable, new Newtonsoft.Json.JsonSerializerSettings());
谢谢您的帮助。当您按日期筛选时,至少在这两个类中都应该有date属性。 之后,您可以执行以下操作:
List<MyData> theList = new List<MyData>();
var list=GetData<MyData>(x=>x.date==myDate);
theList=list;
List<MyDataHistorical> theListHistorical = new List<MyDataHistorical>();
var listHistorical=GetData<MyDataHistorical>(x=>x.date==myDate);
theListHistorical=listHistorical;
list.AddRange(listHistorical.Select(x => new MyData()
{
Id= x.Id,
Name= x.Name,
DepartmentId=x.DepartmentId
}));
dataTable.data = list.ToArray();
return Json(dataTable, new Newtonsoft.Json.JsonSerializerSettings());
您可以创建另一个类viewmodel,它的参数与这些类完全相同,从数据库中获取数据后,您可以通过循环在viewmodel中设置这些数据,如果我正确理解了这个问题的话。请告诉我,您到底想要什么作为输出?非常感谢您的回答,我编辑了我的问题,并试图解释我想要什么作为输出。请您将MyData和MyDataHistorical类添加到您的问题中好吗?我编辑了我的模型类问题。这解决了我的问题,我不知道我可以像这样添加不同类型的范围,非常感谢你!
List<MyData> theList = new List<MyData>();
var list=GetData<MyData>(x=>x.date==myDate);
theList=list;
List<MyDataHistorical> theListHistorical = new List<MyDataHistorical>();
var listHistorical=GetData<MyDataHistorical>(x=>x.date==myDate);
theListHistorical=listHistorical;
list.AddRange(listHistorical.Select(x => new MyData()
{
Id= x.Id,
Name= x.Name,
DepartmentId=x.DepartmentId
}));
dataTable.data = list.ToArray();
return Json(dataTable, new Newtonsoft.Json.JsonSerializerSettings());