J'ai deux classes, ThreadItem et Inquiry.CodeFirst EF 4.1 Héritage - Renommer PK/FK
public class ThreadItem
{
[Key]
public int Id { get; set; }
public DateTime Created { get; set; }
}
public class ThreadItemMapping : EntityTypeConfiguration<ThreadItem>
{
public ThreadItemMapping()
{
Property(a => a.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).HasColumnName("ThreadItemId");
}
}
[Table("Enquiry")]
public class Enquiry : ThreadItem
{
public string Comment { get; set;}
}
Maintenant, cela fonctionne, pas un seul problème. J'ai une table [ThreadItem] et une table [Inquiry]. Ma table Inquiry a un PK/FK qui est mappé sur ThreadItem, ce dont j'ai besoin. Cependant, je voudrais renommer la colonne.
Actuellement, il s'agit de [ThreadItemId], conformément à la classe ThreadItemMapping. Je voudrais le renommer [EnquiryId]. Je comprends que cela s'appelle [ThreadItemId] est logique, c'est plus une question «est-ce possible» pour être honnête.
Des idées?
Cheers, D
Question intéressante! EF 4.0 prend en charge le mappage d'un nom de colonne arbitraire à la propriété key de la classe de base dans l'héritage Table-Per-Type. (Vous pouvez même mapper cela dans le concepteur.) Mais il semble que l'API DbContext n'a aucune option pour configurer ce scénario. Les noms de colonnes clés doivent être identiques dans la base et toutes les classes dérivées. Pour autant que je puisse voir au moins ... – Slauma