エンティティの1つに、区切り文字列(DBから)を辞書に変換する特別なマッピングが必要です。 代わりに、いくつかのダミープロパティを使用して、私はもっとエレガントな方法を説明するように、カスタムマッパだろうと思ったhereNPOCO:カスタムMapperが呼び出されないのはなぜですか
私の問題マッパーからの方法は、これまでと呼ばれていないとNPOCOが辞書に私のDB-文字列を変換しようとしていることです明らかに失敗する。
多分私はマッパを誤解したり、何かを逃しています。しかし、なぜそれがうまくいかないのか説明できません。
マイマッピング(簡体字)
public class MyEntityMap : Map<MyEntity>
{
public MyEntity()
{
Columns(x =>
{
x.Column(c => c.SpecialColumn).WithName("SpecialColumn");
}, true);
}
}
マイマッパー(あまりしません)
public class MyMapper : DefaultMapper
{
public override Func<object, object> GetFromDbConverter(MemberInfo destMemberInfo, Type sourceType)
{
return base.GetFromDbConverter(destMemberInfo, sourceType);
}
public override Func<object, object> GetFromDbConverter(Type destType, Type sourceType)
{
return base.GetFromDbConverter(destType, sourceType);
}
public override bool MapMemberToColumn(MemberInfo pi, ref string columnName, ref bool resultColumn)
{
return base.MapMemberToColumn(pi, ref columnName, ref resultColumn);
}
public override void GetTableInfo(Type t, TableInfo ti)
{
base.GetTableInfo(t, ti);
}
}
マイdatalayer(コンストラクタ)
protected SimpleDepot()
{
//SQL Server/MySQL
if (!mappingInitialized)
{
NPocoDatabaseFactory.Setup("connectionstring");
mappingInitialized = true;
}
Database = NPocoDatabaseFactory.DbFactory.GetDatabase();
Database.Mapper = new MyMapper();
PocoData = Database.PocoDataFactory.ForType(typeof(TEntity));
}
だから、すべてがで順番に思えます少なくとも私に。 私は行方不明のアイデア。 私は現在NPOCO 2.9.103を使用していますが、私はv3にアップデートできるかどうかを確認しています