しばらく苦労した後、Breeze メタデータをスタイルで楽しみながらモデルを保護するために、最終的にメタデータ専用の 2 つ目の DbContext を作成しました。それが EFContextProvider に渡されるものです。したがって、モデル用に 1 つの DbContext と、dto を使用してデータ アクセス レイヤーとして機能する 1 つがあります。その後、オートマッパーを使用して linq プロジェクションを自動マッピングしようとしましたが、null 参照例外で壁にぶつかり続けました。ただし、このライブラリ: http://linqprojector.codeplex.com/は関連しており、まったく同じ構文を使用しており、完全に機能します。今、サーバー上に、実際に必要なものを返すメソッドがあります。それは、リストを含む dto です。モデルに Posts のリストを含むクラス Blog があるとします。このメソッドは、PostsDTO のリストを含むオブジェクト BlogDTO を返します。
しかし、Breeze の BlogDTO オブジェクトでは、投稿の配列は空のままです。ブラウザにデータが送信されているのをこの目で見たのですが、なぜか Breeze がデータの一部を無視してしまいました。
正直なところ、この道を進むには解決すべき問題がかなりあります。
皆さんと共有したかっただけです。誰かがこれを理解し、私を助けることができれば。Breeze クエリは次のとおりです。
var query = EntityQuery
.from('BlogWithPosts')
.withParameters({id: blogId});
return manager.executeQuery(query)
.then(querySucceeded)
.fail(queryFailed);
function querySucceeded(data) {
console.log(data);
var s = data.results[0];
return blogObservable(s);
}
明確にするために、オブジェクト データの XHR プロパティでは、responseText プロパティが必要なすべてのデータを保持しています。自分で解析する必要がありますか? メタデータを簡単に取得するポイントは何でしたか...