• LINQ to Sql系列一 增,删,改


    首先,我们来了解一下LINQ to sql 是什么,我想从以下几点来做说明。

    1,LINQ是从.net framework 3.0开始引入的的语言特性,主要是用来对集合数据进行操作的。
    2,LINQ to sql是LINQ在数据库数据访问方面的一个ORM框架。

    了解完概念之后,我们就开始地学习LINQ to sql了,不过在正式利用LINQ to sql去进行数据的增,删,改,查之前,我们还有一些准备工作要做。

    准备工作

    1,创建数据库

    创建数据库名为LinqtoSqlDemoDb,一共有四张表分别是Student学生表,Class班级表,Course课程表和StudentCourse学生课程表,如图:

    l2s01

    注意表与表之间的外键关系。

    2,创建LINQ to classes文件

    打开VS2010,创建一个类库工程命名为LinqtoSqlDemo.DAL,在工程上右键单击,选择“add--->add item”,在文件类型中选择“LINQ to classes”,命名为L2SDB.dbml,如图所示:

    l2s02

    3,根据数据库表自动生成代码

    创建好LINQ to classes文件后,选择菜单“view--->server explorer”打开server explorer窗口,增加一个数据库连接。如图一

    l2s03

    展开tables开点,应该就能看到刚才创建的四张表,将它们选中然后拖到设计区,就会得到如图所示的样子。

    l2s04

    在设计窗口按F4键打开DataContext的属性窗口,我们需要给数据库上下文设定命名空间,如图。

    l2s05

    按ctrl+f5保存,这样我们的LINQ to sql 的ORM就创建好了。下面我们就可以开始数据的增,删,改的操作了。

    代码如下:

    复制代码
    public static void Add()
            {
                ClassInfo ci = new ClassInfo {  ClassName="class 1"};
    
                Console.WriteLine("---------------begin add a class");
                using (L2SDBDataContext db = new L2SDBDataContext())
                {
                    TClass tc = new TClass();
                    ClassValueCopier.Copy(tc, ci);
                    //db.Log = Console.Out; //for output sql statement
                    db.TClasses.InsertOnSubmit(tc);
                    db.SubmitChanges();
                }
                Console.WriteLine("--------------end");
            }
    复制代码

    代码如下:

    复制代码
    public static void Delete(int id = 3)
            {
                Console.WriteLine("---------------begin delete a class");
                using (L2SDBDataContext db = new L2SDBDataContext())
                {
                    //get the class by id
                    TClass tc = db.TClasses.SingleOrDefault(p => p.ClassID == id);
                    db.TClasses.DeleteOnSubmit(tc);
                    db.SubmitChanges();    
                }
                Console.WriteLine("--------------end delete a student");
            }
    复制代码

    代码如下:

    复制代码
    public static void Edit(int id = 3)
            {
                Console.WriteLine("---------------begin edit a class");
                using (L2SDBDataContext db = new L2SDBDataContext())
                {
                    //get the class by id
                    TClass tc = db.TClasses.SingleOrDefault(p => p.ClassID == id);
                    tc.ClassName = "class 1a";
                    db.SubmitChanges();
                }
                Console.WriteLine("---------------end edit a class");
            }
    复制代码

    总结:

    1,首先我们必须得到DataContext对象,这个对象相当于一个数据库的GateWay,所有的操作都是通过它进行的。

    2,LINQ to sql使用了“Unit of work”模式,所以,对数据库的操作不会立即提交到数据库,而是需要显式调用DataContext对象的SubmitChanges方法,所有改动才会被提交到数据库中。

  • 相关阅读:
    bzoj 3438: 小M的作物
    bzoj 4445 [SCOI2015] 小凸想跑步
    hdu 4899 Hero meet devil
    hdu 4898 The Revenge of the Princess’ Knight
    【NOIP1999】拦截导弹
    【OpenJudge】2991:2011 题解
    【cqbzoj】1785:残缺棋盘上放车的方案数 --状压dp --输入毁一生
    【cqbzoj】:1330 Prime DP(Ahio2001 质数和分解)
    【Openjudge:Noi】7891:一元三次方程求解 c++
    【USACO FEB 2010 SILVER】吃巧克力(Chocolate Eating)
  • 原文地址:https://www.cnblogs.com/wlming/p/5993754.html
Copyright © 2020-2023  润新知