zoukankan      html  css  js  c++  java
  • Windows Phone本地数据库(SQLCE):2、LINQ to SQL(翻译)(转)

    首先、要说到的是,windows phone 7.1上基本的数据库功能是SQL Compact关于Mango的一个实现,使用linq to sql访问存储在数据库上的数据。

     

    1、LINQ to SQL是什么

         LINQ to SQL 是一个作为.NET Framework上的一部分的ORM(对象关系映射)框架。它允许你映射你的业务对象(business object)(模型类)到数据库中的表,然后可以不用写单一的SQL语句来访问或查询数据库中的数据。随着Mango的更新,LINQ to SQL现在可以用于Windows Phone。

         你可以使用LINQ to SQL:
         1、映射你的业务对象(business object)到数据库中的表
         2、使用LINQ查询数据库
         3、使用LINQ to SQL的API插入数据到数据库中
         4、使用LINQ to SQL的API更新数据
         5、使用LINQ to SQL的API删除数据
     
         虽然windows phone 支持LINQ to SQL的大部分特性,但是它也有一些局限性。你可以看一下完整的MSDN文档http://msdn.microsoft.com/zh-cn/library/hh202872(v=vs.92).aspx下面给出其中的一些:
        1、不支持ExecuteCommand :Windows Phone 不支持执行原始 Transact-SQL、数据定义语言 (DDL) 或数据建模语言 (DML) 语句。    
         2、不支持ADO.NET(例如DataReader):LINQ to SQL查询的所有数据都将在DataContext指定的类型集合中返回    
         3、仅支持Microsoft SQL Server Compact Edition (SQL CE)数据类型:SQLCE是本地数据库的基础数据库技术。有关SQLCE数据类型的完整列表请看:http://msdn.microsoft.com/zh-cn/library/ms172424(v=sql.110).aspx
          4、不支持Table.IListSource.GetList :若要绑定到表中的所有内容,请查询整个表并绑定到查询。使用业务逻辑处理插入和删除。
          5、不支持BinaryFormatter(二进制类型):若要将自定义类型转换为SQL Server Binary或VarBinary数据类型,您的数据上下文属性可以实现LINQ to SQL CustomType,或者可以为byte[]或System.Data.Linq.Binary 类型。若要实现 LINQ to SQL CustomType,请首先创建实现 ToString() 和 Parse() 的自定义类,然后将该类用作您数据上下文中的属性。LINQ to SQL 可从 CustomType 映射到任何 SQL Server 字符串类型,例如,Char、NChar、NVarChar、Text 和 XML。
          6、Take() 在LINQ查询中需要使用常数值:SQL CE 不支持在 Transact-SQL TOP 会话中使用查询值。如果您要在 Take 方法中使用变量值,请在未使用 Take 方法的其他查询中计算该值。
          7、Skip()和Take()需要使用排序列表:这些方法依赖于排序返回一致的结果。

    2、它是怎么工作的

        简单地说,LINQ是一组扩展方法,让你可以在C#或VB中使用特殊的查询语法来查询数据库中的数据。为了表示查询而使用标准的LINQ查询运算符,基本的查询语法是一个方便的陈述性的简写。在你开始之前,你需要了解一些基本的东西:

           1、LINQ to SQL 查询表达式通常以“from”子句开始,以“select”子句结束
        2、“from”子句表示你想要查询的数据(通常你从collection/datacontext中查询数据)
        3、“select”子句表示你想要返回的数据,并且它应该是什么样的格式
        4、每当你想要过滤数据时你可以使用“where”子句
        5、通过“orderby”子句对数据进行排列
    注释:LINQ to SQL在数据库层完成所有的过滤和排序,这让它变得非常高效。为此,你可以在C#代码中编写LINQ查询,它会自动翻译成SQL,然后SQL runtime会执行语句,所以当你执行下面的LINQ 查询
    1 var query = from p in context.Persons where p.Age > 18 select p;

    在实际执行之前,LINQ to SQL runtime会自动将它翻译成下面的SQL查询

    1 SELECT [t0].[ID], [t0].[FirstName], [t0].[LastName], [t0].[Age] 
    2 FROM [dbo].[People] AS [t0] 
    3 WHERE [t0].[Age] > @p0
    
    
    注释:关于更多的关于完整的LINQ语法你可以看一下官方文档:http://msdn.microsoft.com/zh-cn/library/bb308959.aspx

      这篇文章我谈了有关在windows phone mango本地数据库中使用LINQ to SQL。请继续关注接下来的文章。

  • 相关阅读:
    django URL路由基础
    Django2.0 URL配置
    【转】MSMQ 微软消息队列 简单 示例
    Equeue初识
    有关C#标签Attribute的熟悉
    【原创】C#模拟Post请求,正文为json数据的代码参考
    2016年5月11日摘自知乎的一些Redis大概了解
    【原创】网站抓包HttpWebRequest不返回Javascript生成的Cookie的解决办法
    【原创】Silverlight客户端发起WebRequest请求分析
    【原创】记一次HttpWebRequest中国移动查账单爬虫的攻克历程
  • 原文地址:https://www.cnblogs.com/zgqys1980/p/3837950.html
Copyright © 2011-2022 走看看