论道Windows Phone(四) LINQ to SQL的查询

有一天,一个读者给我发邮件,问我是否有兴趣做一个翻译应用,根据《美食译苑——中文菜单英文译法》把中文菜名译成英文菜名,因 为他经常和老外吃饭,所以希望他的WP手机上能有一个这样的应用,而我们则正好借此机会探索LINQ to SQL的查询以及相关的优化技巧。

使用现有的数据库

Windows Phone 7.5新增了对SQL Server CE数据库的支持,但Visual Studio 2010没有为Windows Phone的 项目提供数据库的工具支持,比如表的设计和实体类的生成等,另外,数据库也须通过LINQ to SQL进行访问。

一般而言,应用会在首 次运行的时候在独立存储里创建数据库,然后在运行过程中保存用户创建的数据,不过,这个应用不是创建一个新的数据库,而是使用现有的 数据库,这个数据库会随应用一起部署到用户的手机上。 首先,在Solution Explorer里通过项目菜单把数据库添加到项目里,如图1所示。

图 1

然后, 在Properties里把数据库的Build Action的值设为Content,如图2所示,这样数据库将会以独立文件的形式打包进XAP文件。相对的,如果我 们把Build Action的值设为Resource,那么数据库将会以资源的形式嵌入DLL文件,这样会导致应用的加载时间延长,应该尽可能避免。

图 2

时间: 2025-01-01 16:03:36

论道Windows Phone(四) LINQ to SQL的查询的相关文章

Linq to SQL之查询和添加

本文以Northwind数据库中的Customers和Orders表为例说明Linq to SQL的查询和添加是怎样操作的. 首先通过Linq to SQL File向导创建DataContext以及相应的Entity Class,如果不知道怎样做请看这 里:Defining data model classes 创建一个Customer对象,然后把该数据添加到数据库中去. NorthwindDataContext ctx = new NorthwindDataContext(); Custom

LINQ to SQL异步查询

异步操作是提高Web应用程序吞吐量的重要手段,关于这方面的话题已经在前 文<正确使用异步操作>中解释过了.对于大多数互联网应用来说,性能瓶颈数 据库访问.换句话说,一个请求在数据库操作上所花的时间往往是最多的 --并且占总时间的90%以上.因此,当Web应用程序的吞吐量因为数 据库操作的阻塞而受到影响的话,我们可是尝试使用异步数据库操作来进行优化 . 如果我们使用LINQ to SQL,在默认情况下是无法实现异步查询的,所 有的操作都非常自然--异步是不自然的,因为它把连续的操作拆成 了两段.

艾伟_转载:打造优雅的Linq To SQL动态查询

首先我们来看看日常比较典型的一种查询Form 这个场景很简单:就是根据客户名.订单日期.负责人来作筛选条件,然后找出符合要求的订单. 在那遥远的时代,可能避免不了要写这样的简单接口: public interface IOrderService{ IList<Order> Search(string customer, DateTime dateFrom, DateTime dateTo, int employeeID);} 具体爱怎么实现就怎么实现啦,存储过程,ORM框架.这里假定是用了孩童

Linq To SQL下实现动态表名的映射

提出问题 前段时间,在博客园里看到有位朋友,问如何实现在动态表名.我们都知道,把一个实体类映谢到表 里,应该这样写: [Table(Name = "User")] class User { [Column] public int ID; [Column] public string Name; } 很明显,这里的表名是写死的,有些时候,我们可能要根据不同的情况实现不同的表名 里加个前缀或者后缀,例如: tt_User,aa_User,User1.User2. 分析问题 要解决这个问题,

Linq to SQL之删除

本文接着前面的文章Linq to SQL之查询和添加和Linq to SQL之更新,以Northwind为例子,介绍使用 Linq to SQL怎样进行删除数据. 首先以Customers表的一行数据为例,进行数据删除: NorthwindDataContext ctx = new NorthwindDataContext(); Customer test1 = ctx.Customers.Single(c => c.CustomerID == "TEST1"); ctx.Cus

Linq to SQL之更新

本文接着上篇Linq to SQL之查询和添加,还是以Northwind数据库为例,介绍使用Linq to SQL怎样对 数据库的数据进行更新及冲突的相关问题. 首先对Customers表的一条记录进行更新: NorthwindDataContext ctx = new NorthwindDataContext(); Customer alfki = ctx.Customers.Single(c => c.CustomerID == "ALFKI"); Console.Write

LINQ to SQL:处理char(1)字段的方式会引起全表扫描问题_MsSql

  如果表中的字段类型为 char(1) 时,Linq to SQL生成char (System.Char)的属性,如下图 表定义 生成的实体 2. 如果要查询LineCode=='A'的记录,可以这样定义Linq查询语句 var test1 = from p in db.ProductLines             where p.LineCode =='A'             select p; 生成的SQL语句是这样的 SELECT [t0].[LineCode], [t0].[

LINQ to SQL:处理char(1)字段的方式会引起全表扫描问题

如果表中的字段类型为 char(1) 时,Linq to SQL生成char (System.Char)的属性,如下图 表定义 生成的实体 2. 如果要查询LineCode=='A'的记录,可以这样定义Linq查询语句 var test1 = from p in db.ProductLines             where p.LineCode =='A'             select p; 生成的SQL语句是这样的 SELECT [t0].[LineCode], [t0].[Li

Linq To Sql进阶系列(四)User Define Function篇

User Define Function, 用户自定义函数,简称UDF. 关于sql server中的udf,请大家参考 http://msdn.microsoft.com/msdnmag/issues/03/11/DataPoints/一文.本文主要阐述,在Linq To Sql 中,如何使用UDF. 1,UDF 简介 UDF可以分为两中类型.一种为Scalar Valued Function,简称为SVF,是返回值类型的UDF. 另一种 为Table Valued Function 简称为T