LINQ to Entities v / s ADO.Net

时间:2013-11-22 06:23:11

标签: c# linq ado.net

LINQ to Entities能否完全取代ADO.Net技术?

我真正想知道的是,是否可以通过LINQ实现ADO.Net提供的所有特性和功能?谁是老板?

3 个答案:

答案 0 :(得分:4)

既然你在评论中说你的意思是LINQ to Entities,我会这样回答:

LINQ to Entities在内部使用ADO.Net,因此LINQ to Entities不可能替换ADO.Net,因为它使用它。但是,我假设你要问你是否可以在任何可以使用ADO.Net的情况下使用LINQ to Entities。答案是否定的,你不能。

有些情况下您不希望(或不能)使用LINQ to Entities。例如,如果您在某种情况下需要更好的查询性能,那么最好使用存储过程。通常,当开发人员生产力的优先级高于查询的执行速度时,LINQ to Entities是更好的选择。 LINQ to Entities不是一个好选择的其他情况是DB设计不佳而且没有主键。

但我认为主要观点是:在你的情况下哪些优先级更高?开发人员的生产力或绩我认为使用这两种技术也是完全可以接受的。使用LINQ to Entities完成项目,如果存在性能问题,请使用存储过程或ADO.Net。

此外,我不会将LINQ to Entities用于大型查询,或者使用多个连接的查询,连接的LINQ语法不是很简洁,并且可能会损害代码的可读性。

答案 1 :(得分:1)

@Reddy,它完全取决于您决定使用哪种技术的场景。 ADO.NET为您提供了使用DataSet的元组结构,与ORM类似的技术即LINQ-Entity甚至使用它。当应用程序的主要方面围绕记录处理时,我已经克制了ADO.NET,在SSIS管道中使用但在我主要遵循测试驱动开发或域驱动开发方法时坚持使用LINQ-Entity。

答案 2 :(得分:0)

1)ADO.NET是数据库连接技术,因此我们可以使用ado.net仅使用数据库进行操作,但是如果我们需要从非数据库数据源(如xml,集合等)获取数据。不可能。 但是使用LINQ可以从许多数据源获取数据,例如集合,XML文件,实体,甚至数据库也是如此。

2)但是,如果你明白性能,ADO.NET比任何其他数据库连接技术都要快。

3)如果你使用LINQ运行时错误可以纠正,所以错误会更少,所以可靠性增加

  so ADO.NET vs LINQ technologies both having their own positives and negative features ,Microsoft given huge amount of featured technologies, so according to the application requirement we need to go with that technology.