我开始学习Silverlight 4 RIA服务。我已经浏览了很多关于如何将数据绑定到网格的示例。但总是有绑定的对象是一个没有子表的简单对象。
在我的数据库中有一个员工表和一个城市名表(id字段为pk)。在employee表中,有一个FK到CityId字段。
我尝试做的第一件事就是显示员工名单和他们的城市名称。 我已经按照所有教程中显示的正常方式完成了(创建edmx,创建域服务并使用数据源窗口创建数据网格)
当我尝试绑定城市名称时,问题开始在员工(父实体)和城市类型(子实体)之间抛出FK
这条线很好用:
<sdk:DataGridTextColumn x:Name="cityCodeColumn" Binding="{Binding Path=CityCode}"
Header="CityCode" Width="SizeToHeader" />
这一行没有:
<sdk:DataGridTextColumn x:Name="cityNameColumn" Binding="{Binding Path=CityType.Name}" Header="CityName" Width="SizeToHeader" />
所以我的问题是,是否存在构建Silverlight应用程序的模式,并且不包括实体之间的所有关联?
感谢, 奥伦
答案 0 :(得分:0)
要在绑定Employee记录时提供City信息,您需要确保使用RIA域服务元数据中的[Include]属性标记City引用。
[MetadataTypeAttribute(typeof(MyTestObject.MyTestObject_Metadata))]
public partial class MyTestObject
{
internal sealed class MyTestObject_Metadata
{
// Metadata classes are not meant to be instantiated.
private MyTestObject_Metadata()
{ }
[Include]
public AnotherObject Foo { get; set; }
}
}
您还需要在查询中包含引用。
var results = this.ObjectContext.MyTestObject.Include(Foo);
希望这有帮助。