It's not always possible to pick fields for the 'pk': sometimes all fields are nullable (some databases report views to have all nullable fields or this is unknown), or there are no unique fields. If a view has 30 fields, having 30 PK fields is really weird and also cumbersome to use.
The problem with all-nullable fields is why we didn't support this on EF. NHibernate at least can be told to simply 'use this field' as pk, even if it's not a unique field or even nullable: the class is used as readonly anyway. This didn't work on EF.
There's much debate about this on the EF team mailinglist, as the 'pick all nonnullable fields' is not something people want, at least that's what I learned from these debates.