Aquí está la solución que he estado usando para tales casos. Es útil cuando tiene clases generadas automáticamente que desea decorar con atributos. Digamos que esta es la clase generada automáticamente:
public partial class UserProfile
{
public int UserId { get; set; }
public string UserName { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
}
Y digamos, me gustaría agregar un atributo para especificar que UserId es la clave. Luego crearía una clase parcial en otro archivo como este:
[Table("UserProfile")]
[MetadataType(typeof(UserProfileMetadata))]
public partial class UserProfile
{
internal sealed class UserProfileMetadata
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
}
}