【发布时间】:2012-09-25 13:29:18
【问题描述】:
在 Silverlight5 / RIA 服务应用程序中,我在一个非常简单的数据库上构建了域服务:
预订 n:1 设备 1:n GroupToEquipment n:1 组
在我自动生成的 edmx 中,GroupToEquipment 实体永远不会出现,并且会显示直接从 Equipment 到 Group 的 n:m 关联。到目前为止一切顺利。
为了让设备引用我的 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");
}
代码编译正常,但查询设备后没有对组的引用...... :-(
我做错了什么?很确定这对于知道的人来说只是一个小问题......
最好的问候, 弗洛。
【问题讨论】:
-
您是否收到了对 Bookings 的引用?我会尝试两件事:1) 运行 Fiddler2 并查看 WCF Silverlight 下返回的内容 2) 删除 [Association] - 我从来不需要包含它
-
包括预订参考。如果我删除 [Association] 编译失败....
标签: c# silverlight associations wcf-ria-services domainservices