博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Silverlight学习点滴之四——DataGrid如何绑定外键
阅读量:5111 次
发布时间:2019-06-13

本文共 1182 字,大约阅读时间需要 3 分钟。

在上一篇()的第一个运行截图中,我们看到第一列是Category,并且全部都是空白。

转到数据库的表中查看,发现Products表只有CategoryID,而没有Category这个属性!那么,这个Category是···?答案在Model.edmx里:

可以看到,Category和Product两张表之间有个外键,这个外键在EF中表现为一对导航属性。在缺省状态下,导航属性的值为null,必须做一些设置才能得到相应的值:

修改ProductMetadata

在NorthwindService.metadata.cs中,找到修改ProductMetadata中需要显示的导航属性,为其添加Include特性

internalsealedclass ProductMetadata {
...... [Include] public Category Category { get; set; } [Include] public Supplier Supplier { get; set; } ...... }

 

为域服务添加新的查询方法

新的查询方法只在原有的GetGetProducts后加一个Include方法,参数是需要包含的导航属性名字,在这里,可以包含多个Include。

publicpartialclass NorthwindService {
public IQueryable
GetGetProductsDetail() {
returnthis.ObjectContext.Products.Include("Category"); } }

 

修改DataGrid的绑定代码

修改分类这一列的绑定代码

把查询的方法换掉

privatevoid DataGridLoaded(object sender, RoutedEventArgs e) {
var context =new NorthwindContext(); context.Load(context.GetGetProductsDetailQuery(), true); dataGrid.ItemsSource = context.Products; }

 

调试一下,分类名终于显示出来了:

 

附上源码:

 

参考链接:

转载于:https://www.cnblogs.com/Realh/archive/2011/08/17/2130511.html

你可能感兴趣的文章
Android调试工具 —— MAT [整理]
查看>>
ES6 之 let和const、块级作用域
查看>>
hello,world!
查看>>
学习web前端开发感想
查看>>
百度地图API,定位您的当前位置
查看>>
写一个jquery弹出层插件gbox,简单多功能...
查看>>
JavaScript的一些CheckData函数
查看>>
JSP 手记
查看>>
df和du显示的磁盘空间使用情况不一致的原因及处理
查看>>
[无关] 胡言乱语3
查看>>
Leetcode 29. Divide Two Integers
查看>>
thinkPHP--SQL查询
查看>>
winrar 弹窗处理
查看>>
关于IO流的抽象类
查看>>
2019.1.26
查看>>
伪静态的实现方法:IIS环境下配置
查看>>
Selenium-webdriver系列教程(三)————如何执行一段js脚本
查看>>
使用debussy完成自动仿真
查看>>
MyEclipse中Web项目的发布和运行
查看>>
【模板】最短路
查看>>