I have run into the problem addressed here (cannot add view to the edmx) multiple times over the years. Following the directions normally works. This past week, none of the suggested fixes are working. I'm working a port of data that's a mix of Access and SQL Server. I had a couple problems in the past related to the project that were sorted out by all the suggestions in the other question.
Here's what I had: a view that pulled from data created as a batch from Access tables once a week. That's as icky as it sounds. This information consists of a name and a simple integer. From there, I have two other views dependent on it. (This is where my problem could be: view within view.)
Next, I created a view that pulls from live SQL data and produces the same results consisting of the same name and a count. Both static and live views show that the name is not null and the count is nullable.
However, the secondary views of the static data show not-null for the name. This is fine. It let's EDMX create an entry for it. But, even though I create a views by scripting the working views to a window (and then pointing the view at the live data view), that view has decided that the names are nullable. Then EDMX can't decide what to do with it.
I tried all the standard solutions, but even generating a new identity field as part of the view still produces all nullable columns. The thing that drove me over the edge is that I finally said, "let me look at the view in the designer." I did. It looked normal. I changed nothing, but I did hit a Ctrl-S to save it. I refreshed the view and suddenly SSMS shows that the not-null columns are all now nullable. I got this result on two databases: my local test and remoting to the client's computer. The only thing so far that I can think to explain this is that SQL Server itself changed some subtle rules on views that use views.
For now, I'm going to make stored procedures, but it would sure be nice to know why this has stopped working for me.