下面是关于" C#操作LINQ to SQL组件进行数据库建模的基本教程 "的完整攻略:
1. LINQ to SQL组件简介
-
LINQ
(Language Integrated Query)是一种内置于 .NET Framework 中的语言查询技术,能够直接在 .NET 语言(如C#)内对各种数据源进行查询,例如内存集合、LINQ to XML、LINQ to Dataset、LINQ to Entities等。 -
LINQ to SQL
是一种以LINQ查询语句(有些类似SQL语句)作为查询方式的ORM(Object-relational Mapping)框架,能够方便地将SQL Server中的数据映射到C#中,并通过LINQ查询的方式来进行数据操作。 -
LINQ to SQL使用了面向对象的类来表示数据库表以及表中的字段(属性),由于这些类是基于表结构生成的,因此我们可以利用这样的类来快速地进行对象化编程。
2. C#操作LINQ to SQL组件进行数据库建模的基本步骤
在使用LINQ to SQL组件进行数据库建模时,主要分为以下步骤:
1. 创建数据库与表
2. 生成数据库连接字符串
3. 使用SQLMetal.exe创建LinqToSql类
4. 使用创建LinqToSql类查询、插入、修改、删除操作数据库
下面,将通过示例来详细讲解具体的操作步骤,供大家参考:
示例1:使用LINQ to SQL进行数据库的查询操作
在此示例中,假设我们的数据库中含有一个"customers"表,该表包含着三个字段分别为"customerId","customerName"和"city"。
1. 创建数据库,创建相应的表
使用SQL Server数据库创建以下表:
CREATE TABLE[dbo].[customers]
(
[customerId][int]PRIMARY KEY,
[customerName]VARCHAR(50)NULL,
[city]VARCHAR(50)NULL
)
-
生成数据库连接字符串
-
在Visual Studio中,创建.NET Framework项目,右键单击项目文件夹,选择“添加”-> “新建项”-> “数据”-> “ADO.NET实体数据模型”,弹出图形添加窗口。
- 在弹出的“新建ADO.NET实体数据模型”的窗口中,选择“生成来自数据库的EF Designer从数据库--> 下一页-->新建连接-->填写连接字符串”。
-
填写完连接字符串后,测试连接成功后可以选择需要的表,或者在上面本章第一步中,创建相应的表结构。
-
生成LinqToSql类
SQLMetal.exe
是 Visual Studio 自带的工具,具体位置为“C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools”文件夹下。
使用SQLMetal.exe
创建LinqToSql类语句操作如下:
SQLMetal /server:localhost /database:example /map:example.map /namespace:LinqExample /code:LinqExample.cs
这个命令将会在当前目录下生成LinqExample.cs
文件。在这个文件中,包含有 example
数据库中所有的表,并且针对每个表,生成具有各种查询、插入、更新、删除等操作的类(类名以Table
作为结尾,如customersTable
)。
- 使用生成的LinqToSql类使用LINQ to SQL查询数据
在第3步中生成的LinqExample.cs
文件中包含有针对每个表的操作类,我们可以使用这些操作类进行相应的数据库操作。在以下示例中,我们将展示如何使用customersTable
类进行数据库的查询操作。
下面是一个示例,包含“连接数据库、查询数据库、关闭数据库”三个步骤:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LinqExample
{
class Program
{
static void Main(string[] args)
{
string connectionString = "Data Source = localhost;Initial Catalog = example;User ID = root;Password = zzzzz; Connect Timeout=30;";
try
{
DataClasses1DataContext context = new DataClasses1DataContext(connectionString);
var results = from c in context.customersTables
where c.city == "上海"
select new
{
ps = c
};
Console.WriteLine("查询结果如下:");
foreach (var c in results)
{
Console.WriteLine("客户号: {0}, 客户名: {1}, 城市: {2}", c.ps.customerId, c.ps.customerName, c.ps.city);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
Console.ReadKey();
}
}
}
}
示例2:使用LINQ to SQL进行数据库的插入、修改、删除操作
在此示例中,假设我们的数据库中含有两个表:"movies"和"actors"。"movies"表包含"movieId"和"movieName"两个字段,"actors"表包含"actorId"和"actorName"两个字段。
- 创建数据库,创建相应的两个表
以MySQL数据库为例,执行如下两个SQL语句创建两个表:
CREATE DATABASE IF NOT EXISTS test_linq;
USE test_linq;
CREATE TABLE `movies` (
`movieId` int NOT NULL AUTO_INCREMENT,
`movieName` varchar(100) DEFAULT NULL,
PRIMARY KEY (`movieId`)
);
CREATE TABLE `actors` (
`actorId` int NOT NULL AUTO_INCREMENT,
`actorName` varchar(100) DEFAULT NULL,
PRIMARY KEY (`actorId`)
);
- 生成数据库连接字符串
同示例1中,根据需求进行创建即可。
- 生成LinqToSql类
同样同示例一中,运行如下命令创建:
SQLMetal /server:localhost /database:my001 /code:DAO.cs /namespace:Linq to SQL /map:./my001.map
-
根据需要使用LinqToSql类进行数据库的插入、修改、删除操作,以下示例仅以 "actors"表为例,展示其相应操作:
-
插入操作:
// 获取当前的dbcontext对象
DataClasses1DataContext db = new DataClasses1DataContext();
// 创建一个actor对象并赋值
actor actorInfo = new actor();
actorInfo.actorName = "蜘蛛侠";
// 添加到actors表
db.actors.InsertOnSubmit(actorInfo);
// 提交更改到数据库
db.SubmitChanges();
- 修改操作:
DataClasses1DataContext db = new DataClasses1DataContext();
// 查询到需要修改的actor
actor actorInfo = db.actors.FirstOrDefault<actor>(actor => actor.actorId == 2);
if (actorInfo != null)
{
// 更新actorName
actorInfo.actorName = "钢铁人";
db.SubmitChanges();
}
- 删除操作:
DataClasses1DataContext db = new DataClasses1DataContext();
// 查询到需要删除的actor对象
actor actorInfo = db.actors.FirstOrDefault<actor>(actor => actor.actorId == 3);
if (actorInfo != null)
{
// 删除 actor对象
db.actors.DeleteOnSubmit(actorInfo);
db.SubmitChanges();
}
至此,展示了使用LINQ to SQL组件进行数据库建模和操作的基本教程过程及操作示例。
希望以上内容能够帮助到大家,谢谢!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#操作LINQ to SQL组件进行数据库建模的基本教程 - Python技术站