LINQ to SQL的快速入门例子

这也是今天课堂上的一个简单例子,演示了如何使用LINQ to SQL的技术,以及C# 3的一些新特性

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LINQtoSQLSample
{
    class Program
    {
        static void Main(string[] args)
        {
            //利用LINQ TO SQL实现快捷高效的数据库访问
            //0.准备:创建DataContext对象
            TraceModelDataContext context = new TraceModelDataContext();
            context.Log = Console.Out;

            //var context2 = new TraceModelDataContext();
            //C# 3的新语法,var关键字是表示类型推断


            //var context3 = new TraceModelDataContext("server=(local);database=db;integrated security=true");
            //如果生产服务器上面的数据库连接是更改过的,则需要这样构造

            //1.查询全部
            var query1 = context.Logs;
            DisplayLogs("显示全部的",query1);

            //2.查询带筛选
            var query2 = context.Logs.Where(l => l.Id % 2 == 1&&l.Message.Contains("Test"));
            //2.1 where是c# 3的一个新特性,叫扩展方法
            //2.2 l=>1.Id...是C# 3的一个新特性,叫lambda表达式,实际上是一个委托delegate
            DisplayLogs("显示奇数的条目", query2);



            //3.查询带排序
            var query3 = context.Logs.OrderByDescending(l => l.Time);
            DisplayLogs("查询带排序", query3);


            //4.查询取中间一部分
            var query4 = context.Logs.Skip(1).Take(2);
            DisplayLogs("查询一部分", query4);

            //var query5 = context.Logs.OrderByDescending(l => l.Id).Skip(1).Take(2);
            //var query6 = context.Logs.OrderByDescending(l => l.Id).ThenBy(l => l.Time);


            //5.插入一个新的条目
            var log = new Logs()
            {
                Message = "测试消息",
                Time=DateTime.Now
            };
            //5.1 {}也是c# 3的新特性,表示直接构造一个对象
            context.Logs.InsertOnSubmit(log);
            context.SubmitChanges();
            DisplayLogs("显示全部的", query1);

            //6.更新一个条目
            var firstLog = context.Logs.FirstOrDefault(l => l.Id == 1);
            if (firstLog != null)
            {
                firstLog.Message = "修改过之后的消息";
                context.SubmitChanges();
                DisplayLogs("显示全部的", query1);
            }

            //7.删除一个条目
            var deleteEntry = from l in context.Logs
                              where l.Id == 1
                              select l;
            var found = deleteEntry.FirstOrDefault();
            if (found != null) {
                context.Logs.DeleteOnSubmit(found);
                context.SubmitChanges();
                DisplayLogs("显示全部的", query1);
            }

            Console.Read();

        }

        private static void DisplayLogs(string message,
            IEnumerable
  
  
   
    query1)
        {

            Console.WriteLine(message);
            
   
   foreach (var item 
   
   in query1)
            {
                Console.WriteLine(
   
   "Id:{0},Time:{1},Message:{2}",
                    item.Id,
                    item.Time,
                    item.Message);

            }
            Console.WriteLine();
        }
    }
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值