Vi hade samma problem och det här är lösningen:
För att tvinga entitetsramverket att använda en kolumn som primärnyckel, använd ISNULL.
För att tvinga entitetsramverket att inte använda en kolumn som primärnyckel, använd NULLIF.
Ett enkelt sätt att tillämpa detta är att linda select-satsen för din vy i en annan markering.
Exempel:
SELECT
ISNULL(MyPrimaryID,-999) MyPrimaryID,
NULLIF(AnotherProperty,'') AnotherProperty
FROM ( ... ) AS temp