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


本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2012/04/24/2467615.html,如需转载请自行联系原作者
相关文章
|
6月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之SQL错误[0A000],通常是什么造成的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
56 1
|
5月前
|
SQL 分布式计算 MaxCompute
SQL开发问题之对于ODPS中的UNION操作,执行计划的问题如何解决
SQL开发问题之对于ODPS中的UNION操作,执行计划的问题如何解决
|
5月前
|
SQL 分布式计算 DataWorks
MaxCompute操作报错合集之使用sql查询一个表的分区数据时遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
5月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在执行SQL查询时遇到报错,代码为[XX000],该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
SQL 分布式计算 资源调度
MaxCompute操作报错合集之执行SQL Union All操作时,数据类型产生报错,该怎么解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
136 1
|
5月前
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之执行多条SQL语句时,使用同一个实例来运行,遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
5月前
|
SQL DataWorks NoSQL
DataWorks操作报错合集之在执行带with语句的SQL查询时出现了错误,是什么原因
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之重新上传后只有SQL无法运行,而Python可以正常运行,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
SQL Java 数据库连接
深入理解SQL中的LEFT JOIN操作
深入理解SQL中的LEFT JOIN操作
|
5月前
|
SQL 分布式计算 DataWorks
MaxCompute操作报错合集之在创建SQL函数时,遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
221 0