2017-03-21 14 views
0

私はプロジェクトの挿入/更新にDapper FastCRUDを使用しています。私は別のエンティティから継承するエンティティを持っています。どちらもTableAttributeでアノテーションされた別々のデスティネーションテーブルを持っています。継承されたクラスである型のオブジェクトを持っている場合、高速CRUDを使用して両方のテーブルにデータを保存する方法はありますか?Dapperオブジェクト継承のFastCRUD

答えて

0

残念ながら私は、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) 

希望のように私のオブジェクトを永続化することができます!

+0

ありがとう@Ade。私が思いつくのは、Fastcrud OrmConventionsクラスのGetEntityPropertiesをオーバーライドして、特定のTypeに属するプロパティをフィルタリングすることでした。 OrmConventionsはアプリケーションレベルの設定なので、私はそれを使わないことに決めました。 –

関連する問題