У меня есть 2 таблицы, скажем T1
и T2
. T1
содержит oID, cID, date, status и T2
содержит cID, cName, cURL. Я разработал класс для 2 выше таблиц, как показано ниже:AutoMapper для объединения записей из двух таблиц в единую IEnumerable viewmodel
T1.cs
public class T1{
public int oID{get;set;}
public int cID{get;set;}
public DateTime date{get;set;}
public string status{get;set;}
}
T2.cs
public class T2{
public int cID{get;set;}
public string cName{get;set;}
public string cURL{get;set;}
}
cID
в T1
является foreign key
со ссылкой T2 - cID
N ой у меня есть модель T3
вид, как показано ниже, чтобы объединить T1
и T2
T3.cs
public class T3:T1
{
public int cID{get;set;}
public string cName{get;set;}
public string cURL{get;set;}
}
T3
распространяется T1
и T2
свойства определяются в T3
. Таким образом, я собирался объединить 2 таблицы в одной модели с использованием AutoMapper
. У меня есть метод получения всех деталей от T1
и связанных с ним деталей от T2
, который при заполнении вернет IEnumerable T3
.
public IEnumerable<T3> GetAll()
{
var od = mycontext.t1repository.GetMany().ToList();
var ck = myContext.t2repository.GetMany(x => od.All(y => y.cID == x.cID)).ToList();
if (od.Any())
{
Mapper.CreateMap<tblT1, T3>();
Mapper.CreateMap<tblT2, T3>()
.ForMember(x=>x.cID, a => a.MapFrom(s => s.cID))
var response = Mapper.Map<List<T1>, List<T3>>(od);
return response;
}
return null;
}
Я попытался выше код через this answer но это для одного экземпляра, и я должен вернуться IEnumerable
записей. Я не уверен, как я могу сопоставить данные из 2-х таблиц на основе их cID
. Любая идея, как я могу это достичь?
Нужно ли использовать поля из родительского (T1) в T3? – Marusyk
@MegaTron Да, мне .. Мне нужно отобразить данные из 'T1' и его соответствующих данных из' T2' и объединить их в 'T3' –