Linq to SQL 简单增删改查
用Linq大大减少了对数据库的一般操作所需的编码量。
运行下面事例之前,首先建一个叫做Alien的数据库表。
CREATE TABLE [dbo].[Aliens](
[Id] [int] IDENTITY(1,1) NOT NULL primary key,
[Name] [nchar](10) NULL,
)
建一个console项目,在项目里添加一个Linq To Sql类文件(.dbml以及两个附属文件),把Alien表从服务器资源管理器拖进来。然后就可以运行下面的代码了:
示例代码
using System;
using System.Linq;
namespace LearnLinqToSql
{
class Program
{
static void Main(string[] args)
{
ForLearnDataContext db = new ForLearnDataContext();
db.Log = Console.Out;
// Insert
Alien et = new Alien { Name = "ET" };
db.Alien.InsertOnSubmit(et);
db.SubmitChanges();
// Update
Alien toChange = db.Alien.Where(a => a.Name == "ET").First();
toChange.Name = "DC";
db.SubmitChanges();
// Delete
Alien dc = db.Alien.Where(a => a.Name == "DC").First();
db.Alien.DeleteOnSubmit(et);
db.SubmitChanges();
Console.WriteLine(et.GetHashCode());
Console.WriteLine(toChange.GetHashCode());
Console.WriteLine(dc.GetHashCode());
db.Alien.InsertOnSubmit(et); // Error: Cannot add an entity that already exists.
}
}
}
通过上面示例可以感觉到,运行环境默默在本地维护了一套对象,在数据库端指向的是同一条记录,则在代码这端就是指向同一个实体的引用。
作者:阿笨
【官方QQ一群:跟着阿笨一起玩NET(已满)】:422315558
【官方QQ二群:跟着阿笨一起玩C#(已满)】:574187616
【官方QQ三群:跟着阿笨一起玩ASP.NET(已满)】:967920586
【官方QQ四群:Asp.Net Core跨平台技术开发(可加入)】:829227829
【官方QQ五群:.NET Core跨平台开发技术(可加入)】:647639415
【网易云课堂】:https://study.163.com/provider/2544628/index.htm?share=2&shareId=2544628
【腾讯课堂】:https://abennet.ke.qq.com
【51CTO学院】:https://edu.51cto.com/sd/66c64
【微信公众号】:微信搜索:跟着阿笨一起玩NET