Background information:
I bought a 1.5 GB database on a web hosting server. It only gave me the permission to get access to the database.
Problem:

You may not understand the Chinese characters, but you do know the mean of the last sentence and that is the key point of this error.
Reason:
This happened when EF is trying to retrieve database information from the web server.
As you can see it is trying to get the information of tables from the master database and INFORMATION_SCHEMA.TABLES view. This is the thing which caused this problem, because I am not granted to access to that database.
So I hope I explained this problem clearly.
Workaround:
I found a way to solve it.
Create the EF on your own local database with exactly same database structure(same tables, same columns etc.) and then change the connectionString to point to the web Server.
Problem:
Whenever there are changes on the database and you want to update the EF DataContext structure, it will always go to the master database and that view to get the information, so you have to change the connectionString back and forth. It has become trivial.
Question:
Is there any other way to do it? I found that LINQ2SQL doesn’t have this problem because it doesn’t automatically retrieve information from database. Instead, users have to drag the tables they want to use.
I am looking forward to any brilliant answers.
Cheers
You should always develop against local database and only change the connection string to database when deploying to the production server. There is no better way to do it.
EF depends on permission to read from master database when using database first and there is currently no way to avoid it. There was even created a suggestion on Data UserVoice for this issue yesterday.