ValueInjecter를 알아 내려고 노력 중이므로 자숙 한 작은 ORM에서 사용할 수 있습니다. 이후 DataRow 및 DataTable 매핑을 지원해야합니다,이 형식에 대한 mappers 구현하려고합니다. 그리고 정직하게도 문서화가 충분하지 않아서 그것을 포기하고 싶었습니다. 어쩌면 Omu 또는이 라이브러리의 다른 사용자가 대답 할 것입니다.ValueInjecter 및 DataTable
여기이 꽤 잘 작동 내 DataRow를 인젝터
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);
}
}
}
입니다. 그래서 여기에 질문이 어떻게 구현할 수있는 DataTable 및 반환 Ienumarable 또는 IList. 내가 할 것으로 예상 코드 스 니펫은 같습니다.
public class DataTableInjector : ?????
{
protected override void Inject(DataTable source, IList<T> target) where T : class
{
// Do My Staff
foreach (var row in source.Rows)
{
target[i].InjectFrom<DataRowInjection>(row);
}
//return IList?
}
}
어떻게해야합니까? 는 지금 KnownSourceValueInjection<DataTable>
을 사용하여, 당신은
내가 OMU의 도움이 DataRow
위해했던 것처럼 같은
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 :) 매우 간단합니다. – Omu