<p><a href="https://stackoverflow.com/questions/71955/when-choosing-an-orm-is-linq-to-sql-or-linq-to-entities-better-than-nhibernate#71974">This answer says</a> that Linq is targeted at a slightly different group of developers than NHibernate, Castle, etc.</p>

<p>Being rather new to C#, nevermind all the DB stuff surrounding it:</p>

<ul>
<li>Are there other major, for lack of a better term, SQL wrappers than NHibernate, Castle, Linq?</li>
<li>What are the differences between them?</li>
<li>What kind of developers or development are they aimed at?</li>
</ul>

<p>-Adam</p>

When you say Castle I assume you mean Castle Active Record?
The difference is NHibernate is an OR/M and is aimed at developers who want to focus on the domain rather than the database. With linq to sql, your database is pre-existing and you're relationships and some of programming will be driven by how your database is defined.
Now between NHibernate and Castle ActiveRecord -- they are similar in that you're driving your application design from the domain but with NHibernate you provide mapping xml files (or mapping classes with fluent NHibernate) where in Active Record you are using the convention over configuration (using attributes to define any columns and settings that don't fit naturally). Castle Active record is still using NHibernate in the background.
One OR/M is not necessarily the 'one true way' to go. It depends on your environment, the application your developing and your team.
You may also want to check out
SubSonic
. It's great for active record but it is not for project where you want to focus mainly on your Domain. Depending on the project, I usually use either NHibernate (with Castle Active Record) or Subsonic