JMSA,
As already indicated in the answers received, different structures turn to different solutions of reality.
Thus, I understand your curiosity. As Johnny D. said, Linq is not a platform, but a subset of .net technology. You can work with it even if you are not using any of the other frameworks you mentioned.
OpenSource or property? As far as I know, I prefer OpenSource. There are so many people who contribute to these projects around the world that you can have the support needed by those who are still using the same OpenSource product as you. The price of proprietary products! Anyway, the best way is to understand how the structure works so that you can use it to the full. Depending on your employer, some prefer OpenSource, while others prefer proprietary.
What framework to choose? This is a good question for the skill you are talking about.
In my humble point of view, I really like the Microsoft Enterprise Library, which is the foundation of OpenSource for any project you are working on. For example, most of the programs you write will require a database connection or so. The corporate library through its DAAB (Data Access Application Block) provides a set of tools out of the box that will allow you to create systems with several databases without changing or recompiling the code, but simply by configuration. The corporate library was invited by Microsoft to support companies such as IBM, HP and other large companies, which we could even ignore. So, when it comes to connecting to the database, I use the Enterrise library. I even built my own Framework based on this, to even facilitate the process of connecting to the database without worrying about the syntax.
As for NHibernate, as you mentioned, this is an integration structure that helps you map your logical objects to your relational data tables in your database. Frames like the Entity Framework do the same. Except that the Entity Framework, as far as I know, is ONLY for SQL Server. If you are developing a system for an Oracle database, the Entity Framework will not provide you with the tools you need, unless I ignore the additional support for more database modules. NHibernate's advantage is that it is compatible with any database engine in the world. I even know that NHibernate allows you to write your code exclusively in object-oriented programming, and when it is time to save your objects, NHibernate can create a database schema for your proper database engine without having to write a DSL (data structure language) statement
I speak for myself when I say that I prefer to use NHibernate with the corporate library as OpenSource products.
Hope this helps and illuminates you a bit. But first, learn the basics of object-oriented programming, otherwise it will be difficult for you to learn how to use these tools.
Take care !:-)