Q:

Is it a good approach to query the database only through stored procedures? 

When I am developing an ASP.NET website I do really like to use Entity Framework with both database-first or code-first models (+ asp.net mvc controllers scaffolding). 
For an application requiring to access an existing database, I naturally thought to create a database model and to use asp.net mvc scaffolding to get all the basic CRUD operations done in a few minutes with nearly no development costs. 
But I discussed with a friend who told me that accessing data stored in the database only through stored procedures is the best approach to take. 
My question is thus, what do you think of this sentence?  Is it better to create stored procedures for any required operations on a table in the database (e.g. create and read on this table, update and delete only on another one, ...)?  And what are the advantages/disadvantages of doing so instead of using a database-first model created from the tables in the database? 
What I thought at first is that it double costs of development to do everything through stored procedures as you have to write these stored procedures where Entity Framework could have provided DbContext in a few clicks, allowing me to use LINQ over Entities, ... But then I've read a few stuff about Ownership Chains that might improve security by setting only permissions to execute stored procedures and no permissions for any operations (select, insert, update, delete) on the tables. 
Thank you for your answers. 

A:

Yes, it's a good approach. 
Whether it's the best approach or not, that depends on a lot of factors, some of them which you don't even know yet. 
One important factor is how much furter development there will be, and how much maintainence.  If the initial development is a big part of the total job, then you should rather use a method that gets you there as fast and easy as possible. 
If you will be working with and maintaining the system for a long time, you should focus less on the initial development time, and more on how easy it is to make changes to the system once it's up and running.  Using stored procedures is one way to make the code less depending on the exact data layout, and allows you to make changes without a lot of down time. 
Note that it's not neccesarily a choise between stored procedures and Entity Framework.  You can also use stored procedures with Entity Framework.