私は2つのテーブル、例えばT1
とT2
を持っています。 T1
は、oID、cID、日付、ステータスおよびT2
に、cID、cName、cURLが含まれています。 foreign key
がT2 - cID
2テーブルのレコードを1つのIEnumerableビューモデルに結合するためのAutoMapper
T1.csT1
で
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
:私は以下のように2つのテーブル上のクラスを設計しました
N OW私はT1
とT2
T3.cs
public class T3:T1
{
public int cID{get;set;}
public string cName{get;set;}
public string cURL{get;set;}
}
T3
を組み合わせるために、以下のように私のT3
ビューモデルを持っているT1
とT2
プロパティがT3
で定義されている拡張。したがって、私はAutoMapper
を使って1つのビューモデルで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;
}
Iはthis answerを介して上記のコードを試みたが、それは、単一インスタンスのためであり、Iは、レコードのIEnumerable
を返却しなければなりません。私は実際にどのように彼らのcID
に基づいて2つのテーブルからデータをマップすることができますか分からない。どのように私はこれを達成することができますか?
T3の親(T1)のフィールドを使用する必要がありますか? – Marusyk
@MegaTronはい私は..私は 'T1'のデータと' T2'の関連データを表示し、 'T3'にそれらをマージする必要があります –