je le modèle suivant et configuration:propriétés de navigation de code Première CTP5 génère des noms de mauvaise colonne
public class User
{
public int Id { get; set; }
public User CreatedBy { get; set; }
public DateTime? DateCreated { get; set; }
public string Name { get; set; }
public string Username { get; set; }
}
public class UserConfiguration : EntityTypeConfiguration<User>
{
public UserConfiguration()
{
this.HasKey(t => t.Id);
this.HasOptional(u => u.CreatedBy);
this.Property(u => u.DateCreated);
this.Property(u => u.Name).HasMaxLength(64);
this.Property(u => u.Username).HasMaxLength(64);
}
}
public class SampleContext : DbContext
{
public IDbSet<User> Users { get; set; }
public SampleContext(string dbConnection)
: base(dbConnection)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new UserConfiguration());
}
}
Je peux travailler avec le contexte et ajouter des utilisateurs très bien. J'ai ensuite regardé la table générée par Code First et j'ai réalisé que la propriété CreatedBy
ne génère pas de colonne CreatedById
mais plutôt une colonne UserId
. Si j'ajoute une autre propriété, comme ModifiedBy
il va générer UserId1
et ainsi de suite:
J'ai essayé la cartographie avec HasRequired()
ainsi, mais la propriété génère toujours un nom de colonne qui correspond au type réel et pas la nom de la propriété. Toute aide serait appréciée.
+1 Génial à savoir! Je pense toujours que cela devrait être la convention de nommage * default *. Il semble qu'il y ait des problèmes comme le support de no * true * enum, ne permettant pas les configurations par héritage (voir l'un de mes messages sur MSDN), etc. Je vais enregistrer cela pour RTM! Merci :) – TheCloudlessSky
Pas de problème :) BTW, je ne pouvais pas trouver votre fil à propos de "configurations par héritage" pouvez-vous s'il vous plaît me fournir le lien? –
Voici le fil: http://social.msdn.microsoft.com/Forums/en-US/adonetefx/thread/ebe48aa3-14df-475e-bc5e-80734f85ace4 – TheCloudlessSky