zoukankan      html  css  js  c++  java
  • (LINQ 学习系列)(1)使用 LINQ to SQL 的典型步骤

    本文作为学习LINQ的基础,全部内容来源于MS LINQ的学习资料整理

    LINQ to SQL .NET Framework 3.5 版的一个组件,提供了用于将关系数据作为对象管理的运行时基础结构。

    语言集成查询 (LINQ) Visual Studio 2008 .NET Framework 3.5 版中引入的一项创新功能,它在对象领域和数据领域之间架起了一座桥梁。

    传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查或 IntelliSense 支持。此外,您还必须针对以下各种数据源学习一种不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等等。LINQ 使查询成为 C# Visual Basic 中的一流语言构造。您可以使用语言关键字和熟悉的运算符针对强类型化对象集合编写查询。 

     

    使用 LINQ to SQL 的典型步骤

    创建对象模型

    第一步是用现有关系数据库的元数据创建对象模型。对象模型按照开发人员所用的编程语言来表示数据库。

    1.选择用于创建模型的工具。

    有三种工具可用于创建模型。

    • 对象关系设计器。

    此设计器提供了用于从现有数据库创建对象模型的丰富用户界面。此工具是 Visual Studio IDE 的一部分,最适合小型或中型数据库。 

    ·         SQLMetal 代码生成工具

    此命令行实用工具提供了与 O/R 设计器略微不同的一组选项。最好使用此工具对大型数据库进行建模。

    例如我的数据库是Sqlserver 2008 ,库名为lxPower 

     

    生成一个包含提取的 SQL 元数据的 .dbml 文件:

    sqlmetal /server:localhost /database:yourdatabase /user:sa /password:XXX /dbml:mymeta.dbml

     

    直接基于 SQL 元数据生成源代码:

    sqlmetal /server:localhost  /database: yourdatabase /namespace:meetweb /code:d:/linqtest.cs /language:csharp

     

    将以上生成的文件拷贝到vs2010,然后包含在你的项目之中,然后通过vs生成需要的 .dbml.layout

     

    ·         代码编辑器

    您可以通过使用 Visual Studio代码编辑器或其他编辑器编写自己的代码。我们建议,在您具有现有数据库且可以使用 O/R 设计器或 SQLMetal 工具时不要使用这种方法,因为这种方法容易出错。但是,代码编辑器在改进或修改您已通过使用其他工具生成的代码方面非常有用。

    可以通过手工或者其他设计工具把基础类生成出来,但是这种方法只比较适合读取数据,其他添加,删除等动作无法直接使用.

     

    2.选择您要生成的代码类型。

    ·         用于基于属性的映射的 C# Visual Basic 源代码文件。

    然后将此代码文件加入您的 Visual Studio 项目中。

    ·         用于外部映射的 XML 文件。

    通过使用此方法,您可以将映射元数据放在应用程序代码外部。

    DBML 文件,您可以在生成最终代码文件之前修改此文件。 

    3.改进代码文件以反映您的应用程序的需要。

    为此,您可以使用 O/R 设计器或代码编辑器。

     

    使用对象模型

    1.创建查询以从数据库中检索信息。

    2.重写 InsertUpdate Delete 的默认行为。

    这一步是可选的。

    LINQ to SQL 不支持且无法识别级联删除操作。如果要从表中删除一个具有约束的行,必须在数据库的外键约束中设置 ON DELETE CASCADE 规则,或者使用自己的代码首先删除那些阻止删除父对象的子对象。否则,将会引发异常。

    3.设置适当的选项以检测和报告并发冲突。

    您可以保留模型用于处理并发冲突的默认值,也可以根据您的需要对其进行更改。有。

    4.建立继承层次结构。

    这一步是可选的。

    5.提供合适的用户界面。

    这一步是可选的,取决于您的应用程序的使用方式。

     

  • 相关阅读:
    Supervisor
    JS操作JSON总结
    电脑连接海信电视 HDMI
    upupw nginx服务器 rewrite设置
    PHP实现远程图片下载
    web页面调用IOS的事件
    composer更新不成功,启用国内镜像网站的配置更改办法
    Oracle中的一连接语句
    Oracle 树操作(select…start with…connect by…prior)
    MyEclipse下Tomcat无法部署项目 finish按钮无法点击
  • 原文地址:https://www.cnblogs.com/meetweb/p/2398693.html
Copyright © 2011-2022 走看看