Ваш вопрос начинается с обсуждения Entity Framework, но затем он переходит в ADO.NET.Это не одно и то же.
Entity Framework - это среда ORM (объектно-реляционное отображение), как и другие пакеты, которые вы упомянули в первом абзаце.Вы правы, что все они делают одно и то же: они позволяют вам читать и записывать данные из базы данных, используя строго типизированные объекты C # вместо более абстрактных понятий, таких как DataTable
и DataRow
.Синтаксис для каждого из них разный, и вам может показаться, что с некоторыми проще работать, чем с другими.Вам также может быть интересно взглянуть на некоторые из тестов скорости, которые существуют для различных платформ.
Также важно отметить, что ORM не всегда требуют написания простого текста SQL;они сами позаботятся об этом.Например, что-то вроде этого работает в PetaPoco и NPoco:
public class Holiday
{
property DateTime Date { get; set; }
property String Name { get; set; }
}
using (var db = new Database("MyDB"))
{
// No SQL here -- it gets generated for you
IEnumerable<Holiday> holidays = db.Query<Holiday>("");
}
ADO.NET - это базовая технология доступа к базе данных, используемая .NET, поэтому все, что обращается к базе данных, будет использовать ее в какой-то момент,Все эти ORM основаны на ADO.NET.