So, Linq to SQL is awesome, but I have never really much cared for Entity Framework.
At work, we are moving to using WCF Data Services for our database access, and using Entity Framework since configuring WCF Data Services to use linq to sql is about as pleasant as punching yourself in the face...3 or 4 thousand times.
So, today I needed to add a view, a simple thing really that did bascially 'select distinct somecolumn from table where somecolumn is not null'. I drag and dropped it on the design..8 times. It never actually took.
After some discovery, I notice that down in the bowels somewhere it was gently telling me there was a problem, but not really telling me what. Interestingly if you open the edmx in notepad, you will notice it added my view, except it commented it out stating the view 'does not have a primary key defined and no valid primary key could be inferred'.
Awesomely there isn't any way to tell it that column is the inferred private key, can we move on. Instead, I end up following an article on MSDN telling me how to manually edit the edmx file to add about 4 thousand new things to get it to recognize it and let me use it.
Of course I then had to add another table later, so I had to redo it all again.
Humorously, the MSDN article says 'modify your database schema so that each table has a primary key or so that one or more columns of each table or view is non-nullable or non-binary', which I tried, the view had distinct, non null, where is not null etc all in there, but it refused to work by conventional means.
It is no wonder to me why Microsoft has so much trouble trying to kill off linq to sql when EF is such a drama queen, and so often.