C#操作LINQ to SQL组件进行数据库建模的基本教程

2019-12-26 18:07:43王振洲
易采站长站为您分析C#操作LINQ to SQL组件进行数据库建模的基本教程,LINQ to SQL被集成在.NET框架之中,需要的朋友可以参考下  

建立实体类
使用LINQ to SQL时,需要首先建立用于映射数据库对象的模型,也就是实体类。在运行时,LINQ to SQL 根据LINQ表达式或查询运算符生成SQL语句,发送到数据库进行操作。数据库返回后,LINQ to SQL负责将结果转换成实体类对象。

建立实体类的方法有很多,例如LINQ to SQL设计器,手动编码建立,使用XML文件映射,使用命令行工具SqlMetal生成等。其中最方便的就是LINQ to SQL设计器。

1.使用LINQ to SQL设计器建立实体类         
在一个示例用的Demo控制台程序中添加一个“基于服务的数据库”Database1.mdf,建立一张tb_GuestInfo的表。该表的详细如下:

C#操作LINQ to SQL组件进行数据库建模的基本教程

下面的所有建立方式,都用的这个数据库。

在项目中添加一个LINQ to SQL类,采用默认的名称DataClasses1.dbml,如下:

C#操作LINQ to SQL组件进行数据库建模的基本教程

将tb_GuestInfo表拖到界面上,保存。

C#操作LINQ to SQL组件进行数据库建模的基本教程

OK,编写相关代码如下,实现增删改查:


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

namespace LINQ_To_SQL自定义数据库和实体类
{
  /// <summary>
  /// 实体类的建立___1.VS建立实体类
  /// </summary>
  class Program
  {
    static void Main(string[] args)
    {
      //
      DataClasses1DataContext dc = new DataClasses1DataContext();
      
      //1.查询
      IQueryable<tb_GuestInfo> query = from p in dc.tb_GuestInfo
                       where p.Name != "XXX"
                       select p;

      foreach (var g in query)
      {
        Console.WriteLine("{0} {1} {2} {3}",g.Id,g.Name,g.Age ,g.Tel );
      }

      Console.WriteLine("-----------------");
      Console.ReadKey(false);
      //2.增加一条记录
      tb_GuestInfo gInfo = new tb_GuestInfo() { Id = 9, Name = "M&M", Age = 40, Tel = "135****5555" };
      dc.tb_GuestInfo.InsertOnSubmit(gInfo);
      dc.SubmitChanges();

      foreach (var g in query)
      {
        Console.WriteLine("{0} {1} {2} {3}",g.Id , g.Name, g.Age, g.Tel);
      }

      Console.WriteLine("-----------------");
      Console.ReadKey(false);

      //3.删除
      var query_itemToDelete = from g in dc.tb_GuestInfo
                   where g.Name == "M&M"
                   select g;
      foreach (var g in query_itemToDelete)
      {
        dc.tb_GuestInfo.DeleteOnSubmit(g);
      }
      dc.SubmitChanges();


      foreach (var g in query)
      {
        Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
      }
      Console.WriteLine("-----------------");
      Console.ReadKey(false);

      //4.修改
      var query_itemToUpdate = from g in dc.tb_GuestInfo
                   where g.Name.Contains("DebugLZQ")
                   select g;

      foreach (var g in query_itemToUpdate)
      {
        g.Name = g.Name + "A";
      }
      dc.SubmitChanges();


      foreach (var g in query)
      {
        Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
      }

      Console.WriteLine("-----------------");
      Console.ReadKey(false);

    }
  }
}