Silverlight5 / RIA サービス アプリケーション内で、非常に単純なデータベース上にドメイン サービスを構築しました。
予約 n:1 機器 1:n GroupToEquipment n:1 グループ
自動生成された edmx では、GroupToEquipment エンティティは表示されず、Equipment から Group への直接の関連付けが表示されます。ここまでは順調ですね。
機器から DomainService 内の 1:n に関連付けられた予約への参照を取得するには、「DomainService.metadata.cs」内に [Include] と [Association...] を挿入する必要がありました。
[Include]
[Association("FK_Booking_Equipment", "EquipmentId","EquipmentId")]
public EntityCollection<Booking> Booking { get; set; }
「DomainService.cs」内に .Include("Booking") を追加しました
public IQueryable<Equipment> GetEquipment()
{
return this.ObjectContext.Equipment.Include("Booking");
}
これは完璧に機能し、機器のクエリ時にすべての予約への参照が読み込まれます! しかし、n:m Group-association にこれをどのように採用する必要がありますか??
次のコードは、「DomainService.metadata.cs」内でさらに試したものです。
internal sealed class EquipmentMetadata
{
// Metadata classes are not meant to be instantiated.
private EquipmentMetadata()
{
}
[Include]
[Association("FK_Booking_Equipment", "EquipmentId","EquipmentId")]
public EntityCollection<Booking> Booking { get; set; }
public Guid EquipmentId { get; set; }
[Include]
[Association("GroupToEquipment", "EquipmentId", "GroupId")]
public EntityCollection<Group> Group { get; set; }
public string Name { get; set; }
}
}
これはDomainServiceで:
public IQueryable<Equipment> GetEquipment()
{
return this.ObjectContext.Equipment.Include("Booking").Include("Group");
}
コードは正常にコンパイルされますが、機器を照会した後、グループへの参照はありません.... :-(
私は何を間違っていますか?確かに、これは知っている人にとっては小さな問題にすぎません...
よろしく、フロー。