使用Entity Framework和WCF Ria Services开发SilverLight之5:客户端主外键联表查询

简介: 在上一篇中我们对EF中的POCO进行了映射,如果这个时候我们使用主外键来进行联表查询,会很遗憾的发现凡是关联表的信息,在客户端获取的全部是null。 本篇我们介绍如何使用Entity Framework和WCF Ria Services在SL客户端获取主外键联表查询的数据。

在上一篇中我们对EF中的POCO进行了映射,如果这个时候我们使用主外键来进行联表查询,会很遗憾的发现凡是关联表的信息,在客户端获取的全部是null。

本篇我们介绍如何使用Entity Framework和WCF Ria Services在SL客户端获取主外键联表查询的数据。

1:添加引用

第一步,为Model项目添加引用System.ServiceModel.DomainServices.Server,如下:

image

我们接下来需要使用的特性Include是在此DLL下。

2:为实体类添加特性

image

为实体类添加的映射有两部分内容需要说明:

首先,必须加Include特性,否则,即使我们的DAL所查询出来的数据包含了外键表Course的数据,通过Ria Services传送到客户端的也会是null;

其次,Assocaition指定了两个实体类之间的关系。第一个参数,可以随便取,第二个参数对应的当前类Department的Key,也就是数据库中的逐渐,第三个参数对应的Course实体类中的外键属性。

Department和Course的数据库表对应关系为:

image

3:开放Ria Service

DAL部分代码:

image

你可能会觉得奇怪,但是代码中的红框部分,并不是必须的,只要我们指定了实体中的Include和Association属性,获取的Department对象中,就已经包含了Courses信息。

Ria Service部分:

image

4:最后的运行结果

image

代码下载:SilverlightApplication20110630.rar

数据库请参看本系列第一篇。

Creative Commons License本文基于 Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 http://www.cnblogs.com/luminji(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。
目录
相关文章
|
机器学习/深度学习 人工智能 Rust
Grok-1:史上最大开源LLM的技术解析
Grok-1:史上最大开源LLM的技术解析
1824 1
|
7月前
|
存储 安全 数据可视化
《探秘鸿蒙系统应用更新:如何实现无缝体验》
鸿蒙系统通过分布式架构与云服务平台,实现应用无缝更新。其增量更新技术减小包体、提升速度;热修复技术快速解决漏洞,无感知优化体验。系统智能选择更新时机,提供可视化进度与可控操作,同时以严格验证机制和兼容性测试保障安全稳定。以社交应用为例,用户夜间Wi-Fi环境下可完成高效静默更新,享受新功能而毫无干扰。这一系列技术与策略不仅提升了用户体验,还推动了鸿蒙生态的繁荣发展,为未来数字生活带来更多可能。
471 0
|
7月前
|
数据采集 移动开发 算法
【硬件测试】基于FPGA的QPSK调制+软解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于FPGA实现QPSK调制与软解调系统,包含Testbench、高斯信道、误码率统计模块,并支持不同SNR设置。硬件版本新增ILA在线数据采集和VIO在线SNR设置功能,提供无水印完整代码及测试结果。通过VIO分别设置SNR为6dB和12dB,验证系统性能。配套操作视频便于用户快速上手。 理论部分详细解析QPSK调制原理及其软解调实现过程,涵盖信号采样、相位估计、判决与解调等关键步骤。软解调通过概率估计(如最大似然法)提高抗噪能力,核心公式为*d = d_hat / P(d_hat|r[n])*,需考虑噪声对信号点分布的影响。 附Verilog核心程序代码及注释,助力理解与开发。
224 5
|
8月前
|
存储 自然语言处理 运维
多语言环境全支持的面板有哪些?
在全球化背景下,服务器管理工具需实现多语言多环境全支持,涵盖技术、服务和合规三个层面。Websoft9作为典型代表,支持12种语言的动态界面切换、自动时区与编码适配,并提供多语言技术文档及区域合规配置,适合全球化中小企业部署。相比之下,cPanel、宝塔面板和Plesk各有侧重,用户应根据需求理性选择。
247 2
|
10月前
|
调度 vr&ar 图形学
阿里云联合平行云推出云XR平台,支持沉浸式体验应用快速落地
2022年6月,阿里云与平行云联合发布云XR平台,降低云端视觉计算应用开发门槛,加速数字孪生、虚拟人、虚拟现实等XR应用落地。该平台由阿里云提供算力调度服务,平行云全面集成3D实时渲染、音视频编码与推流等服务,支持多终端接入,助力互联网、新零售、社交等行业创新业务形态。开发者可通过SDK轻松接入,实现3D应用快速云化部署,终端用户可享受低延时、高性能的沉浸式体验。
|
供应链 安全 算法
Github 宣布在2023年底前必须使用双重验证
2FA(双因素身份验证)是一种增强在线账户安全性的方法,要求用户提供两种不同类型的验证信息才能登录。常见的验证因素包括密码、手机验证码、指纹等。启用2FA能显著提升账户安全性,防止因密码泄露导致的账户被盗。对于开发者而言,尤其是在使用如GitHub这样的平台时,启用2FA尤为重要,可有效抵御恶意攻击,保护代码和个人信息的安全。设置2FA通常通过安装TOTP应用(如Microsoft Authenticator)并按照平台指引完成相关配置。即使手机App被卸载,用户也可通过保存的恢复码登录账户。
687 3
Github 宣布在2023年底前必须使用双重验证
|
数据采集 存储 数据可视化
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
本文介绍了一个基于Python Django框架的智联招聘数据采集与分析系统,该系统具备登录注册功能,允许用户自主选择采集内容,并通过对数据的分析和可视化展示,帮助企业和招聘者优化招聘策略。
346 1
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
|
SQL 安全 数据库
利用Django框架构建高效后端应用
【2月更文挑战第9天】在当今互联网时代,后端开发扮演着至关重要的角色。本文将介绍如何利用Django框架构建高效的后端应用,探讨其优势和应用场景,并深入探讨了Django框架的核心特性和功能。
|
开发工具 Android开发 C++
[√]cocos2dx接入firebase后,点击消息通知栏闪退渲染异常
[√]cocos2dx接入firebase后,点击消息通知栏闪退渲染异常
315 0
|
机器学习/深度学习 TensorFlow 算法框架/工具