5

エンティティ データ モデルを作成し、そこからデータベースを生成しました。

エンティティの 1 つが と呼ばれTemplateます。

正常に動作する機能を拡張するために部分クラスを作成しましたTemplate

新しいクラスを作成してから派生させようとするとTemplate、インスタンス化時に実行時例外が発生します。

Mapping and metadata information could not be found for EntityType 'Template001'.

どうすればこれを回避できますか? 私は間違いなくEFクラスから継承する必要があります。

編集

可能ではないようです。その場合、次の要件を実装する最善の方法は何でしょうか: テンプレート エンティティには、実行する独自のコードを持つテンプレートに関する情報が格納されます。それが、そもそもエンティティから派生させようとしていた理由です。

4

2 に答える 2

5

サポートされていません。エンティティから新しい型を派生させて、永続化のためにマップされたエンティティ型の代わりに使用することはできません。エンティティからクラスを派生させたい場合は、すべての子もデータベースにマップされるマップされた継承を使用する必要があります。

于 2012-03-26T21:44:07.327 に答える
4

そもそもエンティティ クラスから継承する必要があるのはなぜですか? 簡単な動作を追加したい場合は、部分クラスを使用してください。

更新:コメントに基づいて、時間の経過とともに動作が拡張される可能性があるようです。この場合、継承ではなく合成/集約を使用することをお勧めします。拡張が必要な​​クラスにエンティティをフィールドとして持たせます。Raheel のシナリオでは、テンプレート型のフィールド/プロパティを持つ TemplateLogic というクラスになります。

于 2012-03-26T21:52:16.157 に答える