我有2個表,比如說T1
和T2
。 T1
包含oID,cID,日期,狀態和T2
包含cID,cName,cURL。我已經設計類上述2個表如下:AutoMapper將來自2個表的記錄加入單個IEnumerable視圖模型
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
定義相結合。因此,我打算使用AutoMapper
在單個視圖模型中合併2個表格。我有以下方法從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
。我不知道如何根據他們的cID
實際映射來自2個表的數據。任何想法如何我可以實現這一目標?
您是否需要在T3中使用父代(T1)的字段? – Marusyk
@MegaTron是的,我做..我需要從'T1'和它的相關數據顯示來自'T2'的數據,並將它們合併到'T3'中。 –