LINQ to SQL 基本数据操作
2009-10-12 09:44
393 查看
【简 介】
首先需要讲一下 DataContext 类 。
这个类是 LINQ to SQL 框架的主入口点。DataContext 是通过数据库连接映射的所有实体的源。
要在数据库操作上玩 SQL 除了 DataContext 还需要一个数据表的实体类。
在VS 2008 里面,可以直接使用生成
"LINQ to SQL 类" 来解决懒人的动手问题。
添加 "LINQ to SQL 类" 后,可以直接使用 "服务资源管理器"
添加所需要的数据表到 "LINQ to SQL 类",
这样就能直接生成 DataContext 的派生类和表的实体类。
下面这个例子,使用 Northwind 数据库。
// NorthwindDataContext 是
DataContext 派生类, 用于连接数据库与实体
NorthwindDataContext n = new
NorthwindDataContext(
@"Data Source=.;Initial Catalog=Northwind;Integrated
Security=True");
// 操作 Orders 数据表
var s = from n1 in n.Orders
where n1.OrderID % 10 == 0
select new
{
ID = n1.OrderID,
Name = n1.ShipName
};
foreach (var s1 in s)
{
Console.Write(s1.ID);
Console.Write(" ");
Console.Write(s1.Name);
Console.WriteLine();
}
Console.ReadKey();
/**//*
10300 Magazzini Alimentari Riuniti
10400 Eastern Connection
10500 La maison d'Asie
10600 Hungry Coyote Import Store
10700
Save-a-lot Markets
10800 Seven Seas Imports
10900 Wellington
Importadora
11000 Rattlesnake Canyon Grocery
*/
插入数据:
若要执行 SQL Insert,只需向您已创建的对象模型添加对象,然后对 DataContext 调用 SubmitChanges 即可。
NorthwindDataContext n = new NorthwindDataContext(
@"Data
Source=.;Initial Catalog=Northwind;Integrated Security=True");
//
建立对Region表的LINQ查询
var Regions = from n1 in n.Region
select n1;
// 向Region插入数据
Region r = new Region();
r.RegionID = 999;
r.RegionDescription = "test";
n.Region.InsertOnSubmit(r); // 添加记录到
n.SubmitChanges(); // 通知数据库更改记录
// 开始查询,延迟执行
foreach (var Region
in Regions)
{
Console.Write(Region.RegionID);
Console.Write(" ");
Console.Write(Region.RegionDescription);
Console.WriteLine();
}
Console.ReadKey();
/**//*
1 Eastern
2 Western
3
Northern
4 Southern
999 test
*/
这里创建一个新示例数据库
DBTest.mdf
数据库只有一个 Table 表
CREATE TABLE(
首先需要讲一下 DataContext 类 。
这个类是 LINQ to SQL 框架的主入口点。DataContext 是通过数据库连接映射的所有实体的源。
要在数据库操作上玩 SQL 除了 DataContext 还需要一个数据表的实体类。
在VS 2008 里面,可以直接使用生成
"LINQ to SQL 类" 来解决懒人的动手问题。
添加 "LINQ to SQL 类" 后,可以直接使用 "服务资源管理器"
添加所需要的数据表到 "LINQ to SQL 类",
这样就能直接生成 DataContext 的派生类和表的实体类。
下面这个例子,使用 Northwind 数据库。
// NorthwindDataContext 是
DataContext 派生类, 用于连接数据库与实体
NorthwindDataContext n = new
NorthwindDataContext(
@"Data Source=.;Initial Catalog=Northwind;Integrated
Security=True");
// 操作 Orders 数据表
var s = from n1 in n.Orders
where n1.OrderID % 10 == 0
select new
{
ID = n1.OrderID,
Name = n1.ShipName
};
foreach (var s1 in s)
{
Console.Write(s1.ID);
Console.Write(" ");
Console.Write(s1.Name);
Console.WriteLine();
}
Console.ReadKey();
/**//*
10300 Magazzini Alimentari Riuniti
10400 Eastern Connection
10500 La maison d'Asie
10600 Hungry Coyote Import Store
10700
Save-a-lot Markets
10800 Seven Seas Imports
10900 Wellington
Importadora
11000 Rattlesnake Canyon Grocery
*/
插入数据:
若要执行 SQL Insert,只需向您已创建的对象模型添加对象,然后对 DataContext 调用 SubmitChanges 即可。
NorthwindDataContext n = new NorthwindDataContext(
@"Data
Source=.;Initial Catalog=Northwind;Integrated Security=True");
//
建立对Region表的LINQ查询
var Regions = from n1 in n.Region
select n1;
// 向Region插入数据
Region r = new Region();
r.RegionID = 999;
r.RegionDescription = "test";
n.Region.InsertOnSubmit(r); // 添加记录到
n.SubmitChanges(); // 通知数据库更改记录
// 开始查询,延迟执行
foreach (var Region
in Regions)
{
Console.Write(Region.RegionID);
Console.Write(" ");
Console.Write(Region.RegionDescription);
Console.WriteLine();
}
Console.ReadKey();
/**//*
1 Eastern
2 Western
3
Northern
4 Southern
999 test
*/
这里创建一个新示例数据库
DBTest.mdf
数据库只有一个 Table 表
CREATE TABLE