2010-06-29 4 views
0

J'utilise le code-première dans le cadre de l'entité 4, Entity Framework Feature CTP 3Comment spécifier le nom pour la configuration de l'entité

Est-il possible de spécifier le nom d'une configuration de l'entité? En effet changer le nom de la table de 'xxxSet' à un nom de mon choix?

+1

Cette fonctionnalité a été introduite dans CTP 2. Je ne vois aucune documentation nulle part, sauf que le blog de l'équipe ADO.NET note que vous pouvez le faire. –

Répondre

1

Trouvé the documentation. Vous voulez faire quelque chose comme:

public class BloggingModel : ObjectContext 
{ 
    public BloggingModel(EntityConnection connection) 
     : base(connection) 
    { 
     DefaultContainerName = "BloggingModel"; 
    } 

    public IObjectSet<User> Users // ObjectSet name -- you can call it whatever you want 
    { 
     get { return base.CreateObjectSet<User>(); } 
    } 
} 

class UserConfiguration : EntityConfiguration<User> 
{ 
    public UserConfiguration() 
    { 
     Property(u => u.Password).HasMaxLength(15).IsRequired(); 

     Relationship(u => u.AuthoredPosts).FromProperty(p => p.Author); 
     Relationship(u => u.PostedPosts).FromProperty(p => p.Poster); 

     MapHierarchy( 
      u => EntityMap.Row( 
       EntityMap.Column(u.ID, "uid"), 
       EntityMap.Column(u.Password) 
      ) 
     ).ToTable("Users"); // DB table name -- again, anything you like 
    } 
} 

Encore une fois, voir l'article lié pour plus d'informations.

+0

Oui j'ai déjà vu ça. Mais la chose est que je n'utilise pas MapHierarchy. Sur la documentation. Merci – Jeroen

0

Vous pouvez le modifier à partir du concepteur est Visual Studio (la manière facile) ou du fichier .edmx (si vous savez ce que vous faites là-bas) autant que je me souvienne. Essayez également de mettre à jour vers .NET 4.0 et EF4 qui a été publié il y a environ 2 mois, donc oubliez le CTP (il existe des versions express de Visual C# 2010 ou Web Developer 2010 que vous pouvez utiliser gratuitement). Le concepteur dans cette version est plus "complet" que le CTP et sait mieux nommer les entités automatiquement (pluralisation). Ceci est lié à EF et non Linq2Sql (qui est en quelque sorte similaire à EF), mais je ne sais pas exactement comment changer les noms là-bas (mais il doit y avoir un moyen sûr et celui qui doit être à peu près le comme pour EF).

À la votre!

+0

Veuillez lire à nouveau mon message. J'ai ajouté des informations supplémentaires. Je n'utilise pas de concepteur, en commençant par le code uniquement en utilisant Entity Framework Feature CTP3. – Jeroen

+0

Désolé pour le malentendu ... Mon mauvais ici! Je n'ai pas encore utilisé le code avec EF (seulement DB d'abord) donc je ne connais pas la réponse sur celui-ci ... – Padel

Questions connexes