カスタム メタデータ定義を作成し、それを Breeze エンティティ マネージャーに追加することで、サーバー上のカスタム タイプに Breeze を接続することに成功しました。
ただし、JavaScript でカスタム定義されたオブジェクト (従業員) を要求して、その関係を完全に取得することはできません。
つまり、「LoginStats」というプロパティを持つ Employee というオブジェクトがあり、これはサーバー上で List タイプです。Breeze を使用してこのオブジェクトを要求すると、6 つの要素があるはずのコレクションに 1 つの要素だけが返されます。
$promise の結果は次のようになります。
data.results[0].loginStats()[0] //object
data.results[0].loginStats()[1] //undefined
奇妙なことに、.select("LoginStats") などのプロパティを個別に選択すると、配列内の 6 つの項目が完全に返されます。
簡単な呼び出しを使用して、必要なすべてのプロパティをスペルアウトせずに、このオブジェクトを取得するにはどうすればよいでしょうか? .expand() 句を使用しようとしましたが、残念ながら、これを機能させる方法で EntityFramework に接続していません。
前もって感謝します!
編集:これは、「select」ステートメントを使用した場合とオブジェクトを要求した場合のサンプルです。これらの画像は、すべてのプロパティを選択するとどうなるかを示しています。つまり、すべて正しく入力されていますが、観察可能ではありません。ええええ!
コントローラーコード:
[HttpGet]
public IQueryable<Employee> Get(string id)
{
var criterion = new Criterion<Employee, bool>(e => e.CustomerId == id);
var loginStatisticsExtendedProperty = new FillEmployeeLoginStatistics(_UserRoleProvider, _CustomerLoginStatsViewModelRepository);
var availableCompaniesForEmployess = new AvailableCompaniesForEmployess(_CompanyAffiliatesRepository);
return _EmployeeRepository.Find(criterion, loginStatisticsExtendedProperty, _EmployeeDetailsExtendedProperty, availableCompaniesForEmployess);
}