私はこれをかなり長い間機能させようとしてきましたが、まだ成功していません...
私は次のモデルを持っています:
public class Master
{
[Key]
public int Id { get; set; }
public int UserId { get; set; }
public int Month { get; set; }
public int Year { get; set; }
public int Version { get; set; }
public ICollection<Detail> DetailsList { get; set; }
}
public class Detail
{
[Key]
public int Id { get; set; }
public string Description { get; set; }
public decimal Amount { get; set; }
public string Notes { get; set; }
}
私のコントローラーは次のようになります。
...
[HttpGet]
public string Metadata()
{
return _contextProvider.Metadata();
}
[HttpGet]
public IQueryable<Master> Masters()
{
return _contextProvider.Context.Masters.Include("DetailsList");
}
...
クライアント側では、次のようなクエリがあります。
...
var query = EntityQuery.from('Masters').expand("DetailsList");
return manager.executeQuery(query)
.then(querySucceeded)
.fail(queryFailed);
function querySucceeded(data) {
var master = data.results[0];
if (masterObservable) {
masterObservable(master);
}
}
...
私が抱えている問題は、サーバーから返される JSON で確認できるにもかかわらず、DetailsList プロパティがマスター オブジェクトに存在しないことです。Breeze.DataService で hasServerMetadata: true を設定すると、オブジェクトはプロパティを持ちますが、明らかにメタデータを使用しなくなります。このコードは、バージョン 1.1.3 では正常に機能していましたが、1.4.0 にアップグレードしてからは機能しなくなりました。1.4.1 も試してみましたが、うまくいきませんでした。メタデータと関係があると思いますが、再び機能させるために何が欠けているのかわかりません。