Есть язык ANSI SQL, он как идел, в чистом виде нигде не существует, каждая СУБД его придерживается, но вносит свои фишечки, которые делают его не полностью совместимым с другими СУБД. SQL с "фишечками" в конкретной СУБД назвается диалектом SQL. В MS SQL Server свой диалект - Transact-SQL. А еще в SQL Server можно встраивать .NET-сборки.
EF из объектов и выражений генерирует T-SQL-код, отправляет SQL Server и парсит ответ снова в C#-объекты с учетом их связей, почему и называется ORM-фреймворком.
Как правильно говорят, EF и прочие ORM не освобождают от необходимости знать SQL и того, как там организуются связи. Ибо на собеседосах все равно будут заставлять писать SQL на листочке, а на практике во имя бога производительности вы все равно будете писать хранимые процедуры на T-SQL. Так что работать с ADO.NET нужно уметь, даже не смотря на то, что это выглядит достаточно антично в наш хипстерский век.