准备工作,现在数据库中建好测试表Student,这个表只有三个字段ID,Name,Hometown,其中ID为int类型的自增长字段,Name和Howmtown是nvarchar类型
1. 打开VS2010新建控制台应用程序,然后添加LINQ to SQL Class,命名为DbApp.dbml,新建dbml文件之后,可以打开server explorer,建立数据库连接,并将我们新建的表拖到dbml文件中,结果如下图
![](https://pic002.cnblogs.com/img/yukaizhao/201005/2010051318163568.png)
2. 可以通过点击dbml文件空白处,按F4显示dbml属性,可以修改Context和生成实体的命名空间
![](https://pic002.cnblogs.com/img/yukaizhao/201005/2010051318170867.png)
3. 到现在为止VS2010通过工具为我们创建好了数据表对应实体类和数据表操作添,改,删的方法,现在开始实践
1) 添加 Add
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Add
static void Add()
{
//添加一个Student
Student aStudent = new Student
{
Name = "张小二",
Hometown = "南海观音院"
};
Console.WriteLine("----------begin Add a student");
using (DbAppDataContext db = new DbAppDataContext())
{
db.Log = Console.Out;
db.Students.InsertOnSubmit(aStudent);
db.SubmitChanges();
}
Console.WriteLine("----------End Add a student");
}
输出的sql语句
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
输出SQL代码
INSERT INTO [dbo].[Student]([Name], [Hometown])
VALUES (@p0, @p1)
SELECT CONVERT(Int,SCOPE_IDENTITY()) AS [value]
-- @p0: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [张小二]
-- @p1: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [南海观音院]
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 4.0.30319.1
编辑Edit
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Edit
private static void Edit(int id)
{
Console.WriteLine("----------begin edit");
using (DbAppDataContext db = new DbAppDataContext())
{
db.Log = Console.Out;
//取出student
var editStudent = db.Students.SingleOrDefault<Student>(s=>s.ID == id);
if (editStudent == null)
{
Console.WriteLine("id错误");
return;
}
//修改student的属性
editStudent.Name = "张小三";
editStudent.Hometown = "张家口张家寨张家营";
//执行更新操作
db.SubmitChanges();
}
Console.WriteLine("---------end edit Student");
}
删除Delete
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Delete
static void Delete(int id)
{
Console.WriteLine("-----------begin delete a student");
using (DbAppDataContext db = new DbAppDataContext())
{
db.Log = Console.Out;
//取出student
var student = db.Students.SingleOrDefault<Student>(s => s.ID == id);
if (student == null)
{
Console.WriteLine("student is null");
return;
}
db.Students.DeleteOnSubmit(student);
db.SubmitChanges();
}
Console.WriteLine("------------end Delete student");
}