在 Silverlight5 / RIA Services 应用程序中,我在一个非常简单的数据库上构建了域服务:
预订 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");
}
代码编译得很好,但在查询设备后没有对组的引用...... :-(
我究竟做错了什么?很确定这对于知道的人来说只是一个小问题......
最好的问候,弗洛。