对数据库表指定字段的查找,又是实际工作中的一项必要工作。SL客户端仅获取实际需要的指定的字段,好处很多,比如:有助于减少网络流量。

有两类这样的使用场景。

1:联表查询不需要外键表

在上一篇中,我们使用了联表查询,在联表查询中,DAL部分的代码是这样的:

我们已经指出,无论是你是否使用Include方法,只要实体类指定了Include特性,客户端都会获取到被关联的Course记录。诚然,有时候我们需要满足联表查询,但是其他时候我们不需要。

2:单表中仅仅需要部分字段

比如:一个表有5个字段,我仅需要返回两个字段。

3:实现

要满足这样的需求,仅仅需要修改DAL部分。

第一种需求,取出指定字段:

这段代码所生成的SQL语句如下:

SELECT
[Extent1].[DepartmentID] AS [DepartmentID],
[Extent1].[Name] AS [Name]
FROM [dbo].[Department] AS [Extent1]

可以发现,EF只为我们查询两个字段。并且,EF也没有为我们自动关联Course表的数据。

注意,在这段代码中,我们先select new了一个匿名类型,这样就绕过了DbContext中的DbSet<T>对于Department类型校验。如果我们想当然的将这段代码写成:

那么,我们会发现无法获取数据,跟踪错误,会发现:

{"The entity or complex type 'SchoolData.Department' cannot be constructed in a LINQ to Entities query."}    System.SystemException {System.NotSupportedException}
最终运行的效果如下:

回过头来说,如果既要指定字段,又要联表查询,应该怎么做呢?如下:

最终运行效果如下:

由于本部分的代码在上一篇中修改而成,故不再提供下载。

PS:整了一圈回来,才发现DUDU已经把这个问题研究的很深刻了,在:

http://www.cnblogs.com/dudu/archive/2011/04/01/entity_framework_select_new_ok.html

http://www.cnblogs.com/dudu/archive/2011/03/31/entity_framework_select_new.html

转载于:https://www.cnblogs.com/luminji/archive/2011/06/30/2094793.html

使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段相关推荐

  1. (转)使用Entity Framework和WCF Ria Services开发SilverLight之1:简单模型

    原文地址:http://www.cnblogs.com/luminji/archive/2011/06/10/2077696.html 本文目的是通过Silverlight ria service完成 ...

  2. 使用Entity Framework和WCF Ria Services开发SilverLight之4:Map之主外键映射

    上一篇粗粗讲了一下如何使用EF4.1,针对POCO进行MAP,此篇在此基础上进行一下深入,具体讲一下如何进行映射.   1:主外键中的1对多映射 还是针对School数据库.查看如下两个表: 可以知道 ...

  3. [Translation]Silverlight 4-MVVM with Commanding and WCF RIA Services

    原文地址:Silverlight 4 - MVVM with Commanding and WCF RIA Services 在我的前一篇文章 "WCF RIA Services and a ...

  4. Silverlight 4 - MVVM with Commanding and WCF RIA Services

    In my previous post I wrote about "WCF RIA Services and a guide to use DTO/"Presentation M ...

  5. [译]WCF RIA Services中的集合(2)

    原文地址:http://www.silverlightshow.net/items/Working-with-collections-in-WCF-RIA-Services-part-two.aspx ...

  6. Silverlight 应用 WCF RIA Services 在 IIS6 部署问题总结

    WCF RIA Services 部署在IIS6很简单,但是也会出现一些问题 我们的应用是Silverlight 4 Business Application,应用了WCF RIA Service,  ...

  7. WCF RIA Services 概述

    在一个三层架构的应用程序中,中间层介于表示层和数据层之间,你所写的业务逻辑和数据验证都将在中间层出现.创建拥有良好用户体验的RIA应用,你需要客户端和服务端有着相同的业务规则,因此在客户端和服务端保证 ...

  8. [转]Using The Entity Framework With WCF

    本文转自:http://www.gavindraper.co.uk/2010/12/07/using-the-entity-framework-with-wcf/ I've had a few pro ...

  9. .Net Ria Services Preview 升级至 Wcf Ria Services Beta 记录

    把使用 .Net Ria Services Preview 的项目升级至 Wcf Ria Services Beta 的基本操作如下: 准备工作 备份本地工作区代码,如果使用了源代码管理器的话,可以先 ...

最新文章

  1. Tooltip jqueryui
  2. 【Xamarin开发 Android 系列 12】 创建一个Json读取数据应用-添加定位服务
  3. TensorFlow学习笔记(十六)tf.random_normal
  4. python程序运行原理_谈谈 Python 程序的运行原理
  5. python字符串变量_Python从变量读取的特殊字符切分字符串问题
  6. 20 年“码龄”的老程序员如何看编程发展?
  7. [WC2007] 剪刀石头布
  8. poj2485(Kruskal)
  9. Atitit usrQBF2312 命名空间pkg 以及 api命名 spec规范
  10. C语言面试题小练——第8天:static的作用、全局变量与局部变量的存储空间、宏定义注意点
  11. 【网络安全】SQL注入详细分析
  12. 关于Echarts官网httpsecharts.apache.org打不开的解决方案
  13. 重构实践——利用配置文件实现设计的高度抽象
  14. LMV324MTX单通道,双通道和四通道通用低电压轨至轨输出运算放大器TI
  15. win10显示器亮度无法调节
  16. 两阶段(two stage)目标检测原理详解 -- RCNN
  17. Type-C PD充电
  18. 该设备正在使用中。请关闭可能使用该设备的所有程序或窗口,然后重试。
  19. UDP实现群聊聊天室
  20. 迁移到AndroidX报错Program type already present: androidx.annotation xxx

热门文章

  1. SecureRandom
  2. 【转载】反向代理为何叫反向代理?
  3. 来一场说聊就聊的压测分享
  4. 浅析 Linux 初始化 init 系统
  5. iOS UIWebView 访问https 绕过证书验证的方法
  6. ios 接收 c# socket udp 组播
  7. 单点登陆的技术实现机制
  8. freemarker中boolean变量的读取
  9. 重写toString()
  10. 购物中心定位分析、调整方案及租金建议