Reading through that it sounds to me like EF doesn't support excluding columns when reading the database side of things BUT quick googles indicate that you can exclude a column from a set in EF. You can mark things as not required by making them nullable on the database side, but that doesn't stop EF from pulling that column in.
What you could do is create views that exclude the columns you don't want included or stored procedures that exclude those columns and have the developers work with the views and stored procedures rather than with the tables directly.
At my workplace, all of our C# .NET code is required to call stored procedures to get their data. This allows us to restrict and tune the queries run against the database. It is far too easy to have C# code that is running a slow query against the database (poorly written TSQL, grabbing all the data without a filter and filtering application side, grabbing all of the columns in a table when they only need 1), so we let the database developers handle the TSQL and the application developers handle the C#. This also allows us to test performance with SQL Server upgrades without needing permissions and knowledge on how the application works. We just need to review the stored procedure and run it with valid and invalid parameters to gauge performance.