wcfria,使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段

对数据库表指定字段的查找,又是实际工作中的一项必要工作。SL客户端仅获取实际需要的指定的字段,好处很多,比如:有助于减少网络流量。
有两类这样的使用场景。
1:联表查询不需要外键表
在上一篇中,我们使用了联表查询,在联表查询中,DAL部分的代码是这样的:
SELECT [Extent1].[DepartmentID] AS [DepartmentID], [Extent1].[Name] AS [Name] FROM [dbo].[Department] AS [Extent1]
可以发现,EF只为我们查询两个字段。并且,EF也没有为我们自动关联Course表的数据。
注意,在这段代码中,我们先select new了一个匿名类型,这样就绕过了DbContext中的DbSet对于Department类型校验。如果我们想当然的将这段代码写成:
imageimageimage使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段wcfria
那么,我们会发现无法获取数据,跟踪错误,会发现:
{"The entity or complex type 'SchoolData.Department' cannot be constructed in a LINQ to Entities query."} System.SystemException {System.NotSupportedException} 最终运行的效果如下:
imageimageimageimage使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段wcfria
回过头来说,如果既要指定字段,又要联表查询,应该怎么做呢?如下:
imageimageimageimageimage使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段wcfria
最终运行效果如下:
imageimageimageimageimageimage使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段wcfria
由于本部分的代码在上一篇中修改而成,故不再提供下载。
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
Tags:  扫描仪的使用方法 wcfria

延伸阅读

最新评论

发表评论