分享下网上找的不错的LINQ to SQL 的增删改

时间:2022-04-16 20:54:23
添加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语句 
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

使用linq to sql执行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");

输出的sql语句
SELECT [t0].[ID], [t0].[Name], [t0].[Hometown]
FROM [dbo].[Student] AS [t0]
WHERE [t0].[ID] = @p0
-- @p0: Input Int (Size = -1; Prec = 0; Scale = 0) [6]
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 4.0.30319.1
 
UPDATE [dbo].[Student]
SET [Name] = @p3, [Hometown] = @p4
WHERE ([ID] = @p0) AND ([Name] = @p1) AND ([Hometown] = @p2)
-- @p0: Input Int (Size = -1; Prec = 0; Scale = 0) [6]
-- @p1: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [张小二]
-- @p2: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [南海观音院]
-- @p3: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [张小三]
-- @p4: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [张家口张家寨张家营]
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 4.0.30319.1

使用linq to sql 执行删除操作
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");

生成的sql语句:
SELECT [t0].[ID], [t0].[Name], [t0].[Hometown]
FROM [dbo].[Student] AS [t0]
WHERE [t0].[ID] = @p0
-- @p0: Input Int (Size = -1; Prec = 0; Scale = 0) [6]
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 4.0.30319.1
 
DELETE FROM [dbo].[Student] WHERE ([ID] = @p0) AND ([Name] = @p1) AND ([Hometown
] = @p2)
-- @p0: Input Int (Size = -1; Prec = 0; Scale = 0) [6]
-- @p1: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [张小三]
-- @p2: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [张家口张家寨张家营]
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 4.0.30319.1


感谢玉开博主的分享

24 个解决方案

#1


不错,推荐一下吧.

#2


该回复于2014-08-22 15:37:26被管理员删除

#3


分享下网上找的不错的LINQ to SQL 的增删改

#4


围观............................

#5


不错,学习了~~~~

#6


好喜欢这种东西

#7


分享下网上找的不错的LINQ to SQL 的增删改

#8


这么专业,不知道什么时候能接近这么程度 fda,,

#9


这明明是EntityFramework
LINQ全称叫Language Integrated Query(语言集成查询),只能做查询。

#10


分享下网上找的不错的LINQ to SQL 的增删改

有点菜....没事  慢慢熬  都是从菜鸟过来的

#11


感谢分亨,支持牛人

#12


学习,谢谢楼主分享

#13


该回复于2014-08-24 13:03:59被管理员删除

#14


太基础了 这都能上头版 分享下网上找的不错的LINQ to SQL 的增删改

#15


#16


该回复于2014-08-27 08:39:07被管理员删除

#17


该回复于2014-08-27 09:37:38被管理员删除

#18


引用 9 楼 syjml 的回复:
这明明是EntityFramework
LINQ全称叫Language Integrated Query(语言集成查询),只能做查询。

 刚接触EF,
一直不明白LINQ to SQL和ADO.NET EntityFramework有什么区别,网上讲的都是概念,。首先谢谢楼主的分享,只是第一感觉也是觉得这是EF。。有没有大神可以把这两者的区别讲的再详细点,贴代码就最好了

#19


该回复于2014-08-28 16:29:03被管理员删除

#20


引用 18 楼 t101lian 的回复:
Quote: 引用 9 楼 syjml 的回复:

这明明是EntityFramework
LINQ全称叫Language Integrated Query(语言集成查询),只能做查询。

 刚接触EF,
一直不明白LINQ to SQL和ADO.NET EntityFramework有什么区别,网上讲的都是概念,。首先谢谢楼主的分享,只是第一感觉也是觉得这是EF。。有没有大神可以把这两者的区别讲的再详细点,贴代码就最好了


LINQ只能做查询,EF可以做CRUD。举个例子
LINQ查询:var query=from a in Article where NewsId=id select a;
EF查询:var list=db.Article.where(w=>w.NewsId==id).toList();

#21


该回复于2014-08-29 13:06:19被管理员删除

#22


引用 20 楼 syjml 的回复:
Quote: 引用 18 楼 t101lian 的回复:

Quote: 引用 9 楼 syjml 的回复:

这明明是EntityFramework
LINQ全称叫Language Integrated Query(语言集成查询),只能做查询。

 刚接触EF,
一直不明白LINQ to SQL和ADO.NET EntityFramework有什么区别,网上讲的都是概念,。首先谢谢楼主的分享,只是第一感觉也是觉得这是EF。。有没有大神可以把这两者的区别讲的再详细点,贴代码就最好了


LINQ只能做查询,EF可以做CRUD。举个例子
LINQ查询:var query=from a in Article where NewsId=id select a;
EF查询:var list=db.Article.where(w=>w.NewsId==id).toList();


var list=db.Article.where(w=>w.NewsId==id).select(a=>a) 才是IQueryble的吧。。

#23


请问那个p0,p1是什么东西?

#24


引用 22 楼 u011710947 的回复:
Quote: 引用 20 楼 syjml 的回复:

Quote: 引用 18 楼 t101lian 的回复:

Quote: 引用 9 楼 syjml 的回复:

这明明是EntityFramework
LINQ全称叫Language Integrated Query(语言集成查询),只能做查询。

 刚接触EF,
一直不明白LINQ to SQL和ADO.NET EntityFramework有什么区别,网上讲的都是概念,。首先谢谢楼主的分享,只是第一感觉也是觉得这是EF。。有没有大神可以把这两者的区别讲的再详细点,贴代码就最好了


LINQ只能做查询,EF可以做CRUD。举个例子
LINQ查询:var query=from a in Article where NewsId=id select a;
EF查询:var list=db.Article.where(w=>w.NewsId==id).toList();


var list=db.Article.where(w=>w.NewsId==id).select(a=>a) 才是IQueryble的吧。。


怎么了

#1


不错,推荐一下吧.

#2


该回复于2014-08-22 15:37:26被管理员删除

#3


分享下网上找的不错的LINQ to SQL 的增删改

#4


围观............................

#5


不错,学习了~~~~

#6


好喜欢这种东西

#7


分享下网上找的不错的LINQ to SQL 的增删改

#8


这么专业,不知道什么时候能接近这么程度 fda,,

#9


这明明是EntityFramework
LINQ全称叫Language Integrated Query(语言集成查询),只能做查询。

#10


分享下网上找的不错的LINQ to SQL 的增删改

有点菜....没事  慢慢熬  都是从菜鸟过来的

#11


感谢分亨,支持牛人

#12


学习,谢谢楼主分享

#13


该回复于2014-08-24 13:03:59被管理员删除

#14


太基础了 这都能上头版 分享下网上找的不错的LINQ to SQL 的增删改

#15


#16


该回复于2014-08-27 08:39:07被管理员删除

#17


该回复于2014-08-27 09:37:38被管理员删除

#18


引用 9 楼 syjml 的回复:
这明明是EntityFramework
LINQ全称叫Language Integrated Query(语言集成查询),只能做查询。

 刚接触EF,
一直不明白LINQ to SQL和ADO.NET EntityFramework有什么区别,网上讲的都是概念,。首先谢谢楼主的分享,只是第一感觉也是觉得这是EF。。有没有大神可以把这两者的区别讲的再详细点,贴代码就最好了

#19


该回复于2014-08-28 16:29:03被管理员删除

#20


引用 18 楼 t101lian 的回复:
Quote: 引用 9 楼 syjml 的回复:

这明明是EntityFramework
LINQ全称叫Language Integrated Query(语言集成查询),只能做查询。

 刚接触EF,
一直不明白LINQ to SQL和ADO.NET EntityFramework有什么区别,网上讲的都是概念,。首先谢谢楼主的分享,只是第一感觉也是觉得这是EF。。有没有大神可以把这两者的区别讲的再详细点,贴代码就最好了


LINQ只能做查询,EF可以做CRUD。举个例子
LINQ查询:var query=from a in Article where NewsId=id select a;
EF查询:var list=db.Article.where(w=>w.NewsId==id).toList();

#21


该回复于2014-08-29 13:06:19被管理员删除

#22


引用 20 楼 syjml 的回复:
Quote: 引用 18 楼 t101lian 的回复:

Quote: 引用 9 楼 syjml 的回复:

这明明是EntityFramework
LINQ全称叫Language Integrated Query(语言集成查询),只能做查询。

 刚接触EF,
一直不明白LINQ to SQL和ADO.NET EntityFramework有什么区别,网上讲的都是概念,。首先谢谢楼主的分享,只是第一感觉也是觉得这是EF。。有没有大神可以把这两者的区别讲的再详细点,贴代码就最好了


LINQ只能做查询,EF可以做CRUD。举个例子
LINQ查询:var query=from a in Article where NewsId=id select a;
EF查询:var list=db.Article.where(w=>w.NewsId==id).toList();


var list=db.Article.where(w=>w.NewsId==id).select(a=>a) 才是IQueryble的吧。。

#23


请问那个p0,p1是什么东西?

#24


引用 22 楼 u011710947 的回复:
Quote: 引用 20 楼 syjml 的回复:

Quote: 引用 18 楼 t101lian 的回复:

Quote: 引用 9 楼 syjml 的回复:

这明明是EntityFramework
LINQ全称叫Language Integrated Query(语言集成查询),只能做查询。

 刚接触EF,
一直不明白LINQ to SQL和ADO.NET EntityFramework有什么区别,网上讲的都是概念,。首先谢谢楼主的分享,只是第一感觉也是觉得这是EF。。有没有大神可以把这两者的区别讲的再详细点,贴代码就最好了


LINQ只能做查询,EF可以做CRUD。举个例子
LINQ查询:var query=from a in Article where NewsId=id select a;
EF查询:var list=db.Article.where(w=>w.NewsId==id).toList();


var list=db.Article.where(w=>w.NewsId==id).select(a=>a) 才是IQueryble的吧。。


怎么了