+1  A: 

One way might be to lie to the Entity Framework about the primary key. This would require going into the store mapping in the EDMX and changing the primary key flags. Realize, however, that if you do this then the Update Model from Database wizard will try to "fix" your mapping every time you do an update.

Another way would be to create a view in your database and map the view instead of the table.

Craig Stuntz
A: 

The main problem comes from the unnecessary default key creations by the entity framework. Try opening .edmx file in xml format and you will now view the following like thing:

<EntityType Name="GSKItemDetails">
          <Key>
            <PropertyRef Name="ItemId" />
            <!--<PropertyRef Name="Description" />
            <PropertyRef Name="NDCNumber" />-->
          </Key>
          <Property Name="ItemId" Type="varchar" Nullable="false" MaxLength="47" />
          <Property Name="Description" Type="varchar" Nullable="false" MaxLength="30" />
          <Property Name="NDCNumber" Type="varchar" Nullable="false" MaxLength="16" />
          <Property Name="UnitPrice" Type="decimal" Precision="19" Scale="4" /> 
        </EntityType>

In my case commentingout the unnecessasary PropertyRefs, as mentioned above, solved the problem of giving error : Error 3003.

sandeept