LINQ TO SQL 类

LINQ TO SQL 类

一、含义:

linq to sql 是LINQ中最重要的一个组件,它可以为关系数据库提供一个对象模型,并在该对象模型基础上 实现对数据的查询、添加、修改、删除等功能。以下是LINQ TO SQL 对象模型和SQL Server数据库中的对象映射关系图:

LINQ TO SQL 对象模型的基本元素SQL Server数据库中的对象
实体类
属性或字段
关联外键关系
方法存储过程或函数

二、数据上下文

DataContext类是一个LINQ TO SQL 类它充当sql server数据库与映射到该数据库的linq to sql实体类之间的管道,它包含用于连接数据库以及操作数据库的连接字符串信息和方法。

 DataContext类的属性

DataContext包括多个属性,如连接属性connection、事务属性transation等。

 DataContext类的方法

1. 执行sql命令的ExecuteCommand()方法,步骤如下:

ExecuteCommand()方法能够执行指定的sql语句,并通过该sql语句来操作数据库。ExecuteCommand()方法返回一个整数值,即该sql语句影响记录的数量。

1)创建LinDBDataContext类的实例db。

2)创建被执行的sql语句。

3)调用ExcuteCommand()方法执行上述指定的sql语句。

4)调用ExcuteCommand()方法执行的结果,即被修改记录的数量。

例如:

 protected void btnCommand_Click(object sender, EventArgs e)
        {
            LinqDBDataContext DB = new LinqDBDataContext();
            string strSql = "update userinfo set username={0} where id=7";
            int result = DB.ExecuteCommand(strSql, "花无缺");
            Response.Write(result + "条数据受影响");

        }

2.执行sql查询的ExecuteCommand()方法

ExecuteCommand()方法能够执行指定的sql语句,并通过该sql语句来检索数据,查询结果保存数据类型为IEnumerable或IEnumerable<TResult>的对象。

1)创建LinDBDataContext类的实例db。

2)创建被执行的sql语句。

3)调用ExcuteCommand()方法执行上述指定的sql查询语句,擦和讯结果保存在result变量中。其中,查询结果中的元素的数据类型为UserInfo。

4)使用froeach语句显示result变量中的信息。

例如:

 protected void btnQuery_Click(object sender, EventArgs e)
        {
            LinqDBDataContext DB = new LinqDBDataContext();
            string strSql = "select top 5 * from userinfo";
            var users = DB.ExecuteQuery<UserInfo>(strSql);

            foreach (var user in users)
            {
                Response.Write("用户昵称:" + user.Username + "<br />");
            }
        }

3.提交更改到数据库的方法SubmitChanges()方法

SubmitChanges()方法能够计算要插入、更新或删除的已修改对象的集,并执行相应的修改提交到数据库,并修改数据库。

4.获取表集合的GetTable()方法

GetTable()方法能够获取DataContext类的实例的表的集合。

5.获取已修改对象的GetChangSet()方法

GetChangSet()方法能够获取被修改的对象,它返回由3个只读集合(Inserts、Deletes、Update)组成的对象。GetChangSet()方法返回值的类型为ChangeSet。

三、处理Table<T>类型的结果

这个能方表操作数据库中的数据,如插入数据到数据库、修改数据库中的数据、删除数据库中的数据。

例如:

protected void btnAdd_Click(object sender, EventArgs e)
        {
            LinqDBDataContext DB = new LinqDBDataContext();
            EntitySet<Product> productInfo = DB.UserInfo.First().Product;
            Response.Write("添加前的数量:" + productInfo.Count + "<br />");

            Product product = new Product()
            {
                Name = "唐悠悠",
                Remark = "我叫唐悠悠",
                UserId = 3,
                Status = 1,
                CreateDate = DateTime.Now,
                LasterDate = DateTime.Now
            };

            productInfo.Add(product);
            DB.SubmitChanges();
            Response.Write("添加后的数量:" + productInfo.Count + "<br />");
        }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值