0

Breeze は 1.3.2 から継承をサポートしています。DocTest 単体テストは、Entity Framework サーバーに基づく TPH、TPT、および TPC の継承を示します。EntityBase のサブタイプとして BankAccount など、同様の型の継承を持つ同様のデータ サービスを作成しようとしていますが、EF の代わりにサーバーで MongoDb を使用しています。だから私は Zza サンプルに大まかに従っています (Angular.js を使用しないことを除いて)。

Zza サンプルは継承を使用せず、メタデータに基本的な JSON 形式を使用します。DocTest からメタデータを取得したとき

http://localhost:45678/breeze/inheritance/Metadata

別の形式 (JSDL?) のように見えるので、同等の JSON 形式を考え出すのに苦労しています。最初は、メタデータの基本型に "abstract": "true" を追加し、派生型に "baseType":"EntityBase" を追加するように見えます。

これがEFなしでは機能しないと考える理由はありますか? たとえば、TPC (クラスごとのテーブル) よりも TPH (階層ごとのテーブル) を好む理由はありますか?

4

1 に答える 1

0

Breeze クライアントは、バックエンドが EF か Mongo かを気にせず、継承はどちらでもサポートされています。Mongo と EF の違いは、EF では EF モデルから継承関係に関するメタデータを抽出できることです。これは、Mongo データベースに格納されているモデルに関する実際のメタデータがないため、Mongo では不可能です。つまり、Mongo では、Breeze のメタデータ API を介してクライアントでメタデータを作成する必要があります。Mongo クエリから返されるものと一致するメタデータに継承構造を作成するかどうか、および作成する方法は完全にあなた次第です。詳細については、http://www.breezejs.com/documentation/metadata-by-handをご覧ください。

于 2013-11-11T18:11:43.693 に答える