Abbiamo avuto lo stesso problema e questa è la soluzione:
Per forzare il framework di entità a utilizzare una colonna come chiave primaria, usa ISNULL.
Per forzare il framework di entità a non utilizzare una colonna come chiave primaria, usa NULLIF.
Un modo semplice per applicare questo è racchiudere l'istruzione select della tua vista in un'altra select.
Esempio:
SELECT
ISNULL(MyPrimaryID,-999) MyPrimaryID,
NULLIF(AnotherProperty,'') AnotherProperty
FROM ( ... ) AS temp