Đây là giải pháp mà tôi đã và đang sử dụng cho những trường hợp như vậy. Nó hữu ích khi bạn có các lớp được tạo tự động mà bạn muốn trang trí bằng các thuộc tính. Giả sử đây là lớp được tạo tự động:
public partial class UserProfile
{
public int UserId { get; set; }
public string UserName { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
}
Và giả sử, tôi muốn thêm một thuộc tính để chỉ định rằng UserId là khóa. Sau đó, tôi sẽ tạo một lớp một phần trong một tệp khác như thế này:
[Table("UserProfile")]
[MetadataType(typeof(UserProfileMetadata))]
public partial class UserProfile
{
internal sealed class UserProfileMetadata
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
}
}