博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段
阅读量:7082 次
发布时间:2019-06-28

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

对数据库表指定字段的查找,又是实际工作中的一项必要工作。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} 

最终运行的效果如下:

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

最终运行效果如下:

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

本文转自最课程陆敏技博客园博客,原文链接:http://www.cnblogs.com/luminji/archive/2011/06/30/2094793.html,如需转载请自行联系原作者

你可能感兴趣的文章
img 标签的 usemap 属性
查看>>
head设计模式 01
查看>>
Android网络开发之Volley--Volley基本用法StringRequest(一)
查看>>
[ POI 2011 ] Party
查看>>
广告等第三方应用嵌入到web页面方案 之 使用iframe嵌入
查看>>
win10下机器学习TensorFlow搭建
查看>>
CSS——对position定位和margin-top的理解
查看>>
Python+OpenCV图像处理(四)—— 色彩空间
查看>>
认知世界(1)--学与思
查看>>
八、Spring + SpringMVC + MyBatis整合详解
查看>>
程序员如何掌握计算机英语
查看>>
数据库系统的结构
查看>>
attack on titans(动态规划递推,限制条件,至少转至多方法,进击的巨人)
查看>>
Python面向对象-定制方法
查看>>
你为什不是富人? 富人不说穷人不懂
查看>>
FULLTEXT INDEX全文索引
查看>>
virsh创建和恢复快照
查看>>
3.61家庭作业与20135316合作
查看>>
策略模式-2.表单验证1
查看>>
10.18作业
查看>>