DataTable. DataRow ve DataTable eşleştirmelerini desteklemem gerektiğinden, bu türler için haritalayıcıları uygulamaya çalışıyorum. Ve dürüstçe belgeleme yeterince iyi değil ve ona bir şans vermek istedim. Belki Omu veya bu kütüphanenin diğer kullanıcıları cevap verecektir.ValueInjecter ve ben bu yüzden bizim evde yetiştirilen küçük ORM kullanabilirsiniz ValueInjecter anlamaya çalışıyordu
burada bu oldukça iyi çalışıyor benim DataRow enjektör
public class DataRowInjection: KnownSourceValueInjection<DataRow>
{
protected override void Inject(DataRow source, object target)
{
for (var i = 0; i < source.ItemArray.Count(); i++)
{
//TODO: Read from attributes or target type
var activeTarget = target.GetProps().GetByName(source.Table.Columns[i].ToString(), true);
if (activeTarget == null) continue;
var value = source.ItemArray[i];
if (value == DBNull.Value) continue;
activeTarget.SetValue(target, value);
}
}
}
olduğunu. İşte bu yüzden DataTable için bunu nasıl uygulayabilirim ve Ienumarable veya IList'i nasıl iade edebilirim. yapmayı umduğum kod parçacığı gibidir. Bu işlemi nasıl gerçekleştirebilirim ( ) Biraz önce KnownSourceValueInjection<DataTable>
kullanmak, sen
i OMÜ yardımıyla sen DataRow
için yaptım aynı
public class DataTableInjection<T> : ValueInjection where T : new()
{
protected override void Inject(object source, object target)
{
var dt = source as DataTable;
var t = target as IList<T>;
foreach (DataRow dr in dt.Rows)
{
var t2 = new T();
t2.InjectFrom<DataRowInjection>(dr);
t.Add(t2);
}
}
}
awesome :), oldukça basit görünüyor – Omu