Impossible de créer une base de données lors de l'utilisation de classes générées par POCO en tant qu'entités

StackOverflow https://stackoverflow.com//questions/23011817

Question

Pour une raison quelconque, j'ai commencé mon développement de ma conception de la base de données.Ensuite, j'ai utilisé Poco pour générer mes entitages, vos configurations d'entité et le contexte.

À ma prochaine étape, je voudrais faire ma candidature à créer une nouvelle base de données si la base de données spécifiée dans la chaîne de connexion du fichier de configuration n'existe pas.

Le problème que j'ai fait face au moment est le suivant: Quand j'essaie d'obtenir FirstArdefault d'un DBSet de mon modèle, je reçois le message d'erreur suivant

System.Data.entity.core.EntytyCommandExException: une erreur eu lieu lors de l'exécution de la définition de commande.Voir l'intérieur Exception pour plus de détails.---> System.Data.sqlclient.SQLEXCEPXECET: Nom d'objet non valide 'dbo.role'.

J'utilise la configuration suivante de mon entité

 internal class RoleConfiguration : EntityTypeConfiguration<Role>
    {
        public RoleConfiguration(string schema = "dbo")
        {
            ToTable("Role", schema);
            HasKey(x => x.RoleId);

            Property(x => x.RoleId).HasColumnName("RoleId").IsRequired().HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
            HasMany(t => t.Roles_RoleId).WithMany(t => t.Roles_ChildRoleId).Map(m =>
            {
                m.ToTable("RoleRoles", schema);
                m.MapLeftKey("ChildRoleId");
                m.MapRightKey("RoleId");
            });
        }
    }

Était-ce utile?

La solution

Si vous souhaitez que EF crée une base de données pour vous, vous devez définir une initialiseur correcte dans le constructeur de contexte.Par exemple, comme celui-ci:

public YourContextEntities() : base("name=ConnectionStringName")
{
    Database.SetInitializer(new CreateDatabaseIfNotExists<YourContextEntities>());
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top