C# 是ADO.NET还是Linq到SQL?

C# 是ADO.NET还是Linq到SQL?,c#,asp.net,sql,linq,ado.net,C#,Asp.net,Sql,Linq,Ado.net,我正在建立一个论坛,它有4个表:用户、线程、评论、主题 我建立了连接和页面。。我开始使用ADO.net方法插入数据并选择数据。但后来我发现,要进行更复杂的操作,我需要了解SQL。所以我在寻找另一种方法,我发现我可以打开VisualStudio2010,将Linq添加到生成对象关系设计器的SQL文件中。我阅读了有关如何编写代码的内容,我发现我只需要使用带有DataContextobject的using语句和一个简单的代码来更新、添加、删除表中的行 我想知道,使用一种查询方式比使用另一种查询方式有什

我正在建立一个论坛,它有4个表:用户、线程、评论、主题

我建立了连接和页面。。我开始使用ADO.net方法插入数据并选择数据。但后来我发现,要进行更复杂的操作,我需要了解SQL。所以我在寻找另一种方法,我发现我可以打开VisualStudio2010,将Linq添加到生成对象关系设计器的SQL文件中。我阅读了有关如何编写代码的内容,我发现我只需要使用带有
DataContext
object的using语句和一个简单的代码来更新、添加、删除表中的行


我想知道,使用一种查询方式比使用另一种查询方式有什么好处?

这两种方式处于不同的抽象级别。ADO.NET是.NET中数据访问的最低级别。其他任何东西都会建立在它之上

每一个抽象都应该赋予您表达更高层概念的能力,而代价是低层概念


如果我听起来像个哲学家,那是因为今天是星期五。

这两个人在不同的抽象层次上。ADO.NET是.NET中数据访问的最低级别。其他任何东西都会建立在它之上

每一个抽象都应该赋予您表达更高层概念的能力,而代价是低层概念


如果说我听起来像个哲学家,那是因为今天是星期五。

ADO.NET让您对查询进行低级控制。如果查询速度很重要,这就是您想要的。如果速度不是很重要,但是快速开发和对象关系模型是很重要的,那么LINQ到SQL是一个安全的选择

不过,我还是推荐LinqtoSQL而不是ADO.NET

  • 发展是迅速的,用ORM的方式思考是自然的
  • 如果查询速度太慢,使用.ExecuteQuery方法将允许您传入一条经过优化的sql语句,就像使用ADO.NET方法一样。我在LINQtoSQL方面取得了很大的成功
    此外,我还将介绍实体框架。与Linq相比,它使您能够更好地控制对象以及对象的实现、使用和处理方式

    ADO.NET为您提供了对查询的低级控制。如果查询速度很重要,这就是您想要的。如果速度不是很重要,但是快速开发和对象关系模型是很重要的,那么LINQ到SQL是一个安全的选择

    不过,我还是推荐LinqtoSQL而不是ADO.NET

  • 发展是迅速的,用ORM的方式思考是自然的
  • 如果查询速度太慢,使用.ExecuteQuery方法将允许您传入一条经过优化的sql语句,就像使用ADO.NET方法一样。我在LINQtoSQL方面取得了很大的成功
    此外,我还将介绍实体框架。与Linq相比,它使您能够更好地控制对象以及对象的实现、使用和处理方式

    LINQtoSQL非常棒,因为它可以为您生成大量管道代码。但它基本上与直接使用ADO.NET/SQL相同。要在LINQtoSQL中执行更复杂的数据操作,您必须知道如何像在SQL中一样在LINQ中编写复杂的连接


    查看实体框架-它可能会给您提供您所需要的更高级别的抽象。

    LINQ to SQL非常好,因为它可以为您生成大量管道代码。但它基本上与直接使用ADO.NET/SQL相同。要在LINQtoSQL中执行更复杂的数据操作,您必须知道如何像在SQL中一样在LINQ中编写复杂的连接


    查看实体框架-它可能会为您提供更高级别的抽象。LINQ to SQL是ADO.NET技术家族的一部分。它基于ADO.NET提供程序模型提供的服务。因此,您可以将LINQ to SQL代码与现有ADO.NET应用程序混合,并将当前ADO.NET解决方案迁移到LINQ to SQL。下图提供了关系的高级视图


    请参阅以下内容:


    LINQ to SQL是ADO.NET技术系列的一部分。它基于ADO.NET提供程序模型提供的服务。因此,您可以将LINQ to SQL代码与现有ADO.NET应用程序混合,并将当前ADO.NET解决方案迁移到LINQ to SQL。下图提供了关系的高级视图


    请参阅以下内容:


    除了实体框架,您还可以看看NHibernate(另一个.net对象关系映射器)。它比EF存在的时间更长,所以它更成熟一点,但如果这对您来说很重要的话,它不是由Microsoft开发的。

    除了实体框架之外,您还可以看看NHibernate(另一个.net对象关系映射器)。它比EF存在的时间更长,所以它更成熟一点,但如果这对你来说很重要的话,它不是由微软开发的。

    +1让OP知道复杂性是没有捷径的。你必须学习+1让OP知道复杂性没有捷径。你必须学习!!哦,谢谢。我想放弃sql。因为我现在正在看的视频:。我可以看出SQL是一种全新的语言。我使用linq(一个小的)构建了一个应用程序。。我需要知道的是,如果我选择linq to sql,我不受任何限制。如何将sql转换为linq再转换为sql?ADO.net框架的一部分使用对象,如Reader、Dataset和linq,sql使用DataContextJust删除旧对象。阅读以下内容:哦,谢谢。我想放弃sql。因为我现在正在看的视频:。我可以看出SQL是一种全新的语言。我使用linq(一个小的)构建了一个应用程序。。我需要知道的是,如果我选择linq to sql,我不受任何限制。如何将sql转换为linq再转换为sql?ADO.net框架的一部分使用对象,如Reader、Dataset和linq,sql使用DataContextJust删除旧对象。阅读以下内容:因此,如果我处理更高级别的数据,我