我正在使用RIA服务和实体框架4.0构建Silverlight应用程序。我在SQL数据库中有两个表,我想加入并作为单个结果返回。首先,我的两个表:
Room:
id
RoomName
BuildingId
Building:
id
BuildingName
我的默认域名服务生成了默认的GetRooms方法:
Public Function GetRooms() As IQueryable(Of Room)
Return Me.ObjectContext.Rooms
End Function
但是,即使Room.BuildingId和Building.Id之间存在参照完整性,这似乎也不包含有关我的建筑物的详细信息。有人可以指出我正确的方向吗?
答案 0 :(得分:1)
为了优化,性能相关的表在查询中不会包含在默认情况下。您需要使用[Include]标记要包含在查询中的表格。此外,您需要在查询中包含该表。 Tim Heuer正在阅读一篇关于如何做到这一点的博文:
答案 1 :(得分:1)
如果您想要包含建筑物,则需要使用.Include("Building")
代码:
Public Function GetRooms() As IQueryable(Of Room)
Return Me.ObjectContext.Rooms.Include("Building")
End Function
答案 2 :(得分:1)
根据您的要求,您可能需要考虑返回“演示模型”对象的集合(每个对象包含有关房间和建筑物的信息),而不是实体。您可以在服务器项目中定义一个类,并使用域操作(传递给客户端)中的实体模型中的数据填充此类对象的集合。有关这样做的更多信息,请访问:http://msdn.microsoft.com/en-us/library/ee707347(VS.91).aspx。