博客
关于我
光脚丫学LINQ(016):[演练]创建简单对象模型和LINQ查询(C#)
阅读量:527 次
发布时间:2019-03-08

本文共 3627 字,大约阅读时间需要 12 分钟。

转换到基于代码的 LINQ to SQL 解决方案

本演练将引导您创建一个简单的 Visual Studio 项目,用于演示如何使用基于代码的 LINQ to SQL 兰德语言查询。我们将通过以下步骤完成此任务:

项目创建

首先,我们需要创建一个 Visual Studio 项目。进入Visual Studio,按照以下步骤操作:

  • 从菜单栏中选择文件 > 新建。
  • 在新建对话框中选择“项目”类别,然后选择“Visual C#”项目类型。
  • 选择“控制台应用程序”项目模板。
  • 在项目名称框中输入应用程序名称,例如“LinqDemoApp”。
  • 选择要存放项目的位置,并点击“确定”按钮。
  • 添加必要的引用

    确保项目中包含所有所需的引用。请注意,如果项目中尚未包含System.Data.Linq,则需要手动添加:

  • 右键点击“解决方案资源管理器”中的“引用”节点,选择“添加引用”。
  • 在添加引用对话框中,选择“.NET” batching,然后选择System.Data.Linq程序集并点击“确定”。
  • 在程序文件顶部添加以下引用声明:
    using System.Data.Linq;using System.Data.Linq.Mapping;
  • 创建实体类

    接下来,创建一个与数据库表映射的实体类。为实现这一点,请在程序中添加以下代码。确保此代码放置在Program类声明的上方:

    [Table(Name = "Customers")]public class Customer{    private string _CustomerID;        [Column(IsPrimaryKey = true, Storage = "_CustomerID")]    public string CustomerID    {         get { return this._CustomerID; }        set { this._CustomerID = value; }    }        private string _City;        [Column(Storage = "_City")]    public string City    {         get { return this._City; }        set { this._City = value; }    }}

    数据上下文配置

    现在,我们需要配置数据上下文,以便与数据库建立连接。这一步骤非常重要,因为它确保了我们可以通过 LINQ 方法与数据库进行交互。

    using System.Data.Linq;// 假设 Northwind 数据库文件位于当前项目路径下DataContext db = new DataContext(@"C:/YourDatabase.mdf");// 获取并查询 weaken 与 Customers 表Table
    customers = db.GetTable
    ();

    编写查询

    现在我们准备编写一个查询,查找伦敦的客户。以下代码片段展示了如何构建查询:

    // 调试日志配置db.Log = Console.Out;// 查找伦敦的客户IQueryable
    londonCustomers = from Customer in customers where Customer.City == "London" select Customer;

    执行查询

    为了查看查询结果,请在您的主方法中添加以下代码块:

    foreach (Customer customer in londonCustomers){    Console.WriteLine("客户 ID: {0}, 城市: {1}", customer.CustomerID, customer.City);}// 按下回车关闭控制台Console.WriteLine("按下回车关闭程序...");Console.ReadLine();

    完整代码汇总

    以下是完整代码示例,帮助您更好地理解和实现整个过程:

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.Linq;using System.Data.Linq.Mapping;namespace LinqDemo{    [Table(Name = "Customers")]    public class Customer    {        private string _CustomerID;                [Column(IsPrimaryKey = true, Storage = "_CustomerID")]        public string CustomerID        {            get { return _CustomerID; }            set { _CustomerID = value; }        }                private string _City;                [Column(Storage = "_City")]        public string City        {            get { return _City; }            set { _City = value; }        }    }    class Program    {        static void Main()        {            // 数据上下文配置            DataContext db = new DataContext(@"C:/YourDatabase.mdf");                        // 获取客户表            Table
    customers = db.GetTable
    (); // 配置调试日志输出 db.Log = Console.Out; // 编写查询:查找英国伦敦的客户 IQueryBuilder
    londonQuery = from c in customers where c.City == "London" select c; // 输出调试信息 Console.WriteLine("查询结果将显示以下生成的 SQL 命令:"); var sql = londonQuery.ToTraceString(); Console.WriteLine(sql); // 执行查询 var londonCustomers = londonQuery.ToList(); // 显示结果 Console.WriteLine("\n结果如下:"); foreach (Customer customer in londonCustomers) { Console.WriteLine("ID: {0}, 城市: {1}", customer.CustomerID, customer.City); } // 保持控制台窗口不关闭 Console.WriteLine("\n按下回车关闭程序..."); Console.ReadLine(); } }}

    通过以上步骤,您已经掌握了如何创建一个基本的 LINQ to SQL 解决方案。将数据库路径替换为您的实际路径,并确保 Northwind 数据库文件存在于指定位置。完成这些步骤后,您就可以轻松运行和测试 LINQ 查询。

    转载地址:http://intiz.baihongyu.com/

    你可能感兴趣的文章
    玩玩小爬虫——试搭小架构
    查看>>
    Python大神编程常用4大工具,你用过几个?
    查看>>
    linux kernel version magic 不一致导致的模块 加载 (insmod) 不上
    查看>>
    centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解
    查看>>
    MySQL 1064 You have an error in your SQL syntax 错误解决办法
    查看>>
    【Flink】Flink 底层RPC框架分析
    查看>>
    MySQL错误日志(Error Log)
    查看>>
    oracle使用DBMS_RANDOM包生成随机数据
    查看>>
    C++高精度模板
    查看>>
    解决:angularjs radio默认选中失效问题
    查看>>
    windows环境下安装zookeeper(仅本地使用)
    查看>>
    缓冲区溢出实例(一)--Windows
    查看>>
    Badboy录制脚本时,提示脚本错误的解决方法
    查看>>
    PHP一句话木马小总结与SQL语句写一句话木马
    查看>>
    关于计数排序
    查看>>
    Python中字符串前添加r ,b, u, f前缀的含义
    查看>>
    Hadoop学习笔记—Yarn
    查看>>
    JSONPath小试牛刀之Snack3
    查看>>
    Jenkins - 部署在Tomcat容器里的Jenkins,提示“反向代理设置有误”
    查看>>
    2017年前端框架、类库、工具大比拼
    查看>>