私は現在、Web APIやノックアウトなどを使用してSPAを構築しています。これまでのところ、独自の単純なデータコンテキストを作成しており、非常にうまく機能しました。そよ風にぶつかって、試してみる価値があるのではないかと思いました。特に、エンティティ間のナビゲーションについてより簡単なアプローチをとることを望んでいました...
エンティティまたは単一のエンティティをそよ風でロードすることは問題なく機能しました。ナビゲーションプロパティの操作は機能しないようです。1対多の関係であっても、ナビゲーションプロパティは常に空です。
これが私のモデルです(簡略化):
public class WorkdayHours
{
public int Id { get; set; }
public bool IsWorkDay { get; set; }
...
public Byte WeekDay { get; set; }
}
public class Service
{
public int Id { get; set; }
public string DisplayName { get; set; }
public virtual ICollection<WorkdayHours> BookableDays { get; set; }
}
public class Employee
{
public int Id { get; set; }
public string DisplayName { get; set; }
public virtual ICollection<WorkdayHours> BookableDays { get; set; }
}
public class Shop
{
public int Id { get; set; }
public string DisplayName { get; set; }
public virtual ICollection<WorkdayHours> BookableDays { get; set; }
}
次に、次のようにエンティティサービスとSPAを取得します。
var query = EntityQuery
.from('Services')
.where('id', 'eq', serviceId)
.expand('BookableDays');
クエリを実行すると、bookableDayプロパティを除くすべてのデータを含む要求されたサービスエンティティが常に空の配列になります。Jsonの回答を確認すると、workdayHoursも送信され、そよ風がこのエンティティの定義済みのctorを呼び出すことさえあります。ただし、bookableDaysプロパティ自体にはリンクされていません。
生成されたDBモデルをチェックするとき、EFは、サービス、従業員、およびショップの外部キーを、期待どおりにworkdayHoursに生成しました。
そよ風はいくつかのオプションの外国キーを持つことができませんか?
提案やアイデアは非常に高く評価されています。