C#でSQLServerへの接続


SqlConnectionクラスのOpenメソッドを使用するのと､LinqToSQLでDBContextクラスを生成する方法とどちらかおすすめでしょうか｡

どちらでも接続方法はわかるのですが､違いをよく理解してないまま使うのも気持ち悪いので…  
ご教授ください｡




データベースエンジンへの接続は手段でしかなく、真の目的はデータベース操作（データ取得 and/or データ操作）にあるはずです。

というわけで接続した後で何をしたいのでしょうか？
固定的なSQL文を発行するだけでいいのであれば`SqlConnection`クラス及び`SqlCommand`クラスを使用することになりますが、[O/R
Mapper](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E9%96%A2%E4%BF%82%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0)を使いたいのであればライブラリが用意されています。  
ただし、`LinqToSQL`は.NET 3.5での初登場からほぼほぼ放置されており、なおかつ.NET 3.5 SP1にて[Entity
Framework](https://msdn.microsoft.com/ja-
jp/data/ef.aspx)という別のライブラリが登場しています。こちらは随時、機能追加・バージョンアップを重ねています。もし`LinqToSql`を検討されているのであればそれよりは`Entity
Framework`をお勧めします。




データベースエンジンへの接続は手段でしかなく、真の目的はデータベース操作（データ取得 and/or データ操作）にあるはずです。

というわけで接続した後で何をしたいのでしょうか？
固定的なSQL文を発行するだけでいいのであれば`SqlConnection`クラス及び`SqlCommand`クラスを使用することになりますが、[O/R
Mapper](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E9%96%A2%E4%BF%82%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0)を使いたいのであればライブラリが用意されています。  
ただし、`LinqToSQL`は.NET 3.5での初登場からほぼほぼ放置されており、なおかつ.NET 3.5 SP1にて[Entity
Framework](https://msdn.microsoft.com/ja-
jp/data/ef.aspx)という別のライブラリが登場しています。こちらは随時、機能追加・バージョンアップを重ねています。もし`LinqToSql`を検討されているのであればそれよりは`Entity
Framework`をお勧めします。

