残念ながら私は、Dapper FastCRUDやそのような一般的な拡張機能のいずれも、オブジェクト継承をそのように扱うことは期待できないと思います。
私はDapperにハンドオーバして要求された操作を実行する前にConvert.ChangeTypeを呼び出すことができました。
たとえば、私は自分のビジネスロジックとデータベースのやりとりを分離しています。私のビジネスロジックの近くに行かずに別のORMを簡単に交換することができます。私は存続しようとしている
public void Create<T>(T bo) where T : BusinessObject
{
var castedBo = (T)Convert.ChangeType(bo, typeof(T));
Connection.Insert(castedBo);
}
私のオブジェクトが
てBusinessObject
Table("Blog")]
public class Blog : BusinessObject {
...
}
延びており、私は、このことができますので、
Blog blog = new Blog();
dataMapper.Create(Blog)
希望のように私のオブジェクトを永続化することができます!
出典
2017-03-26 10:03:41
Ade
ありがとう@Ade。私が思いつくのは、Fastcrud OrmConventionsクラスのGetEntityPropertiesをオーバーライドして、特定のTypeに属するプロパティをフィルタリングすることでした。 OrmConventionsはアプリケーションレベルの設定なので、私はそれを使わないことに決めました。 –