Linq to SQL 的增删改查操作

      Linq,全称Language Integrated Query,作为C#3.0新语法,是C#语言的一个扩展,可以将数据查询直接集成到编程语言本身中。 Linq表达式和SQL语句差不多,说白了就是颠倒sql语法, from where select ...,从from开始,以select/group by 结束,输出一个IEnumerable<T>或 IQueryable<T>的集合。世间万物皆系于一箭之上,存在即合理,技术是进步的,还可使用标准化查询运算符(SQO),继承自IEnuberable<T>接口,提供了 筛选、投影、聚合、排序等功能的方法,缺点就是语句太多庞大复杂。优点使用便捷,有即时加载(FindAll)和延时加载(Where)

      EF(Entity Framework)Ado.NET中面向开发数据的一种技术,有Code First、Model First、Database First,是微软的一个ORM框架。

      Lambda表达式的本质就是匿名函数,可以包含表达式和语句,也可以用于创建委托或表达式树类型,运算符为“=>”,读作 goes to,借用MVC企业级实战书中一图

            new Func<string, int>(delegate (string str) { return str.Length; });

            (delegate (string str) { return str.Length; });    //匿名方法

            (string str) => { return str.Length; };  //Lambda语句

            (string str) => str.Length;  //Lambda表达式

            (str) => str.Lenth;     //省略类型,让IDE去判断

            str => str.Lenth;       //去掉括号

 Linq操作的是数据对象,所以需要先建立一个实体对象模型,操作的表如下

USE [IBBC]
GO
CREATE TABLE [Table_1](
IDD INT PRIMARY KEY NOT NULL,
Nnmae VARCHAR(15) NULL    
)

INSERT [dbo].[Table_1] ([IDD], [Nnmae]) VALUES (100, N'清高祖'),(102, N'清高宗'),
(103, N'清太祖'),(104, N'Test1'),
(105, N'Test2'),(106, N'Test3'),
(107, N'Test4'),(108, N'Test5')

查询:

public void Dbquery(int id) 
{
   IBBCEntities db = new IBBCEntities();
   var request = from d in db.Table_1
          where d.IDD == id
          select new { d.IDD, d.Nnmae };
foreach (var item in request) { Console.WriteLine("查詢語法: " + item); } var request1 = db.Table_1.SingleOrDefault(b => b.IDD == id); Console.WriteLine("(SQO)方法語法: " +request1.IDD+" "+request1.Nnmae); Console.ReadKey(); }

添加:

//添加:
  var add1 = db.Table_1.SingleOrDefault(c=>c.IDD==1010);
   if (add1.IDD.Tostring()==null)
    {
       Table_1 tb = new Table_1
        {
           IDD = 1010,
           Nnmae = "張三丰"
         };
        db.Table_1.Add(tb);
        db.SaveChanges();
     }
     
(PS:
add1.IDD为Int类型,所以永远不会等于null,故取其ToString(),下同))

修改:

//修改
var update1 = db.Table_1.SingleOrDefault(c => c.IDD == 1010);
if (update1.IDD.Tostring()!=null) 
{
update1.Nnmae = "張君寶";
db.SaveChanges();
}

删除:

//刪除
 var delete1 = db.Table_1.SingleOrDefault(c=>c.IDD==1010);
 if (delete1.IDD.Tostring()!=null)
{
db.Table_1.Remove(delete1);
db.SaveChanges();
}

 

权当做学习记录

        --市人皆大笑,举手揶揄之

转载于:https://www.cnblogs.com/Sientuo/p/6163991.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值