首页 > Linq to SQL 下篇

Linq to SQL 下篇

上一篇博文主要是简单的介绍了使用自定义的一个对象映射模型来完成 Linq to SQL,

而这一篇博文则主要介绍使用由 VS 提供的设计器来实现 Linq to SQL ,

说穿了,两个在实质上是根本没有区别,

但是为何一个要自己写代码,一个有设计器呢,

其实原因就在 VS 帮你把你要写的绝大部分代码给完成了,

而您剩下的工作就是把数据表拖到 .dbml 中,也就是间接的讲,

你做这拖放的工作只是告诉 VS 应该如何生成代码而已,

所以,说到底,只是减少了工作量,其他均没变,

直接看一个实例好了,

因为这中简单的 Demo 实在是简单的让人难过,

首先咯,

当然是要建一个 .aspx 页面啊,

然后就是要添加一个 Linq to SQL 的文件项目,也就是 .dbml 的文件,

然后就是把你要进行读取的数据库中数据表从服务器资源管理器中拖到这个 .dbml 中,

然后你便可以在 .aspx.cs 中完成你的简单的要命的代码了,

image

然后再看一下 Student.dbml 中的截图吧,

image

再看一下Student.dbml 自动生成的代码吧

捕获

可以观察到,

其实设计器完成的代码和我们上一篇博文中自定义的对象映射模型中的代码是很相似的,

当然咯,这里的还是要完成的详细很多的,

由此可见,

使用自定义的映射模型和设计器生成的映射模型二者之间是没有什么区别的,

再看一下 .aspx.cs 就 OK 了

using System;

using System.Linq;

namespace CSharpLanguage

{

    public partial class Demo__9 : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            //建立由 Student.dbml 自动生成的一个类 StudentDataContext 的实例

            //这个实例实质上就是一个 DataContext


            StudentDataContext student = new StudentDataContext();

            var studentResult = from p in student.学生

                                select new

                                {

                                    p.身份证号码,

                                    p.学生姓名,

                                    p.性别,

                                    p.电话号码,

                                    p.出生日期

                                };

            GridView1.DataSource = studentResult;

            GridView1.DataBind();

        }

    }

}

程序的结果也是非常简单的

image

以上就是使用设计器完成的 Linq to SQL 的完整范例了,

其实只有明白了上一篇文章才能掌握其中真正的运作机制。

                            2010—2—01

 

更多相关:

  • 原文出处: 韩昊    1 2 3 4 5 6 7 8 9 10 作 者:韩 昊 知 乎:Heinrich 微 博:@花生油工人 知乎专栏:与时间无关的故事   谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。   转载的同学请保留上面这句话,谢谢。如果还能保留文章来源就更感激不尽了。 我保证这篇文章...

  • 原文出处: 韩昊   我保证这篇文章和你以前看过的所有文章都不同,这是 2012 年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两年,嗯,我是拖延症患者…… 这篇文章的核心思想就是: 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维...

  • 很多Linux高手都喜欢使用screen命令,screen命令可以使你轻松地使用一个终端控制其他终端。尽管screen本身是一个非常有用的工具,byobu作为screen的增强版本,比screen更加好用而且美观,并且提供有用的信息和快捷的热键。 想象一下这样一个场景:你通过Secure Shell(ssh)链接到一个服务器,并...

  • NarrowbandPrimary Synchronization Signal时域位置每1个SFN存在一个NPSSSFNSubframeSymbol长度每个SFN5最后11个symbol11个symbols频域位置NB-IOT下行带宽固定180kHz,一个PRB,12个子载波。...

  •  [h1]反斜杠只能够阻止一个字符  [h2]位于键盘的左上角,和~公用一个键。...

  • THE START更新堪称轻量级MATLAB的一款软件最新版-Maplesoft Maple 2019.2 中文版。Maple是符号和数字计算环境,也是一种多范式编程语言,由Maplesoft开发,还涵盖了技术计算的其他方面,包括可视化,数据分析,矩阵计算和MATLAB连接。MapleSim工具箱添加了用于多域物理建模和代码生成的...

  • 同学们,你们在学习他人的代码,是否见过这样的代码 def main(): def user_info(gender): 当你还是个小萌新时,你一定会认为这是个很牛逼的语法。 当你有了一点基础时,你一定会想要了解这个语法,并且尝试去使用它。 那么今天,我们便来了解这个牛语法。 有了一点点的python基础,我们来看这段代...

  •     自从用了这些快捷键,鼓励师也不需要了,代码开发效率蹭蹭提升!!! ctrl+shift+[折叠代码 (这个比ctrl+k ctrl+l、ctrl+k ctr+j不知道好用多少倍!) ctrl+shift+]展开代码 ctrl+shift+T打开手贱不小心关掉的窗口 【推荐】ctrl+shift+O打开当前文件...

  • 在提交代码之前,建议最好先Fetch代码下来(如果有冲突,系统会提示),然后再操作Merge到本地分支,这样做是为了避免有其他人同时修改了当前分支,如果直接用Ctrl+T(pull代码)极有可能覆盖本地分支最新代码,安全起见先Fetch代码(Ctrl+Alt+Shift+1)——所谓:小心驶得万年船!...

  • 每次复制代码时,如果代码里有 // 这样的注释就容易让格式乱掉,通过下面的设置就可以避免这种情况。 粘贴代码时取消自动缩进 VIM在粘贴代码时会自动缩进,把代码搞得一团糟糕,甚至可能因为某行的一个注释造成后面的代码全部被注释掉,我知道有同学这个时候会用vi去打开文件再粘贴上去(鄙人以前就是这样),其实需要先设置一下 s...

  • 队名:天机组 组员1友林 228(组长) 今日完成:查找了相关资料及api文档。明天计划:继续相关资料及源码。剩余任务:优化网络通讯机制主要困难:查找的代码调试较为困难。收获及疑问:暂无 组员2方宜 225今日完成:画图标、画欢迎界面(初版)明天计划:完成欢迎界面的绘制剩余任务:改ui,连接部分的改进主要困难:美术废真麻烦收获及疑问:...