zoukankan      html  css  js  c++  java
  • Linq To Sql CRUD操作示例 拓荒者

      昨天简要的看了一下Linq To Sql 的操作方式,写了一个简单的CRUD操作的例子。去掉繁琐的理论,直接贴代码。【源代码下载】

      我是新建了一个本地数据库,数据库字段如下:

    根据这个结构,设计了一个实体类Book:

        [Table]
        public class Book
        {
            /// <summary>
            /// 图书ID
            /// </summary>
            [Column(IsPrimaryKey=true,DbType=("bigint"), IsDbGenerated=true)]
            public Int64 bId { get; set; }
            /// <summary>
            /// 图书名称
            /// </summary>
            [Column]
            public string Title { get; set; }
            /// <summary>
            /// 单价
            /// </summary>
            [Column(DbType = "float")]
            public float Price { get; set; }
            /// <summary>
            /// 作者
            /// </summary>
            [Column]
            public string Author { get; set; }
            /// <summary>
            /// ISBN号
            /// </summary>
            [Column]
            public string ISBN { get; set; }
            /// <summary>
            /// 记录的版本号
            /// </summary>
            [Column(DbType = "rowversion", IsVersion=true)]
            public byte[] Stamp { get; set; }
        }

    下面就是对它的CRUD操作:

         #region Linq To Sql [CRUD操作]
    
            private static void LinqToSql_Select()
            {
                DataContext context = new DataContext(string.Format(@"Data Source={0}DB.sdf", AppDomain.CurrentDomain.BaseDirectory));
                context.Log = Console.Out;  //输出Sql的执行过程,方便跟踪调试
    
                var result = from book in context.GetTable<Book>()
                             where book.Price > 50 && book.Title.Contains("C#")
                             orderby book.Price descending
                             select book;
    
                Console.WriteLine(result.Count());
    
                Console.WriteLine("单价大于50元的书:");
                foreach (var item in result)    //在遍历的时候,才正真的去执行查询
                {
                    Console.WriteLine(item.Title);
                }
            }
    
            private static void LinqToSql_Insert()
            {
                DataContext context = new DataContext(string.Format(@"Data Source={0}DB.sdf", AppDomain.CurrentDomain.BaseDirectory));
                context.Log = Console.Out;  //输出Sql的执行过程,方便跟踪调试
    
                ITable books = context.GetTable<Book>();
    
                Book book = new Book() { Title = "C#高级编程", Author = "Wrox", ISBN = "1235=23-233", Price = 138 };
                books.InsertOnSubmit(book);
                context.SubmitChanges();
    
                Console.WriteLine(book.bId);
            }
    
            private static void LinqToSql_Update()
            {
                DataContext context = new DataContext(string.Format(@"Data Source={0}DB.sdf", AppDomain.CurrentDomain.BaseDirectory));
                context.Log = Console.Out;  //输出Sql的执行过程,方便跟踪调试
    
                var books = from b in context.GetTable<Book>()
                           where b.bId == 5
                           select b;
    
                Book book = books.First<Book>();
                book.Title = "C#高级编程(第五版)";
    
                context.SubmitChanges();
            }
    
            private static void LinqToSql_Delete()
            {
                DataContext context = new DataContext(string.Format(@"Data Source={0}DB.sdf", AppDomain.CurrentDomain.BaseDirectory));
                context.Log = Console.Out;  //输出Sql的执行过程,方便跟踪调试
    
                Table<Book> books = context.GetTable<Book>();
    
                var query = from b in books
                            where b.bId == 5
                            select b;
                Book book = query.First<Book>();
    
                books.DeleteOnSubmit(book);
                context.SubmitChanges();
            }
    
            #endregion
    2021年9月 北京、西安两地,高薪诚聘 .NET工程师,请私信联系!
    如果认为此文对您有帮助,别忘了支持一下哦!
    声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。转载时请在文章页面明显位置给出原文链接。
  • 相关阅读:
    angular typescript 引入js文件
    (转)WEB页面导出为Word文档后分页&横向打印的方法
    aspx页面,后端通过Attributes.Add给textbox添加事件时,传参失效问题。
    aspx.designer.cs没有自动生成代码(没有自动注册)
    .net core 在CentOS环境下将微信公众号语音文件amr转化成mp3
    Sign in with Apple 后端验证(C#)
    C# 调用腾讯即时通信 IM
    LINQ入门笔记----LINQ To Object<Take(),TakeWhile(),Skip(),SkipWhile()>
    LINQ入门笔记----LINQ To Object<SelectMany()>
    初识LINQ
  • 原文地址:https://www.cnblogs.com/youring2/p/2467615.html
Copyright © 2011-2022 走看看