Domanda

Per qualche motivo ho iniziato il mio sviluppo dal mio design del database.Quindi ho usato Poco per generare le mie entità, le configurazioni di entità e il contesto.

A mio prossimo passo vorrei effettuare la mia applicazione creare un nuovo database se il database specificato nella stringa di connessione del file di configurazione non esiste.

Il problema che ho affrontato al momento è il seguente: Quando sto cercando di ottenere il primatodefault da un dbset del mio modello sto ottenendo il seguente messaggio di errore

.

system.data.enty.core.entityCommanDexecutionException: un errore si è verificato durante l'esecuzione della definizione del comando.Vedi l'interno Eccezione per i dettagli.---> system.data.sqlclient.sqlexception: Nome oggetto non valido 'dbo.role'.

Sto usando la seguente configurazione della mia 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");
            });
        }
    }
.

È stato utile?

Soluzione

Se si desidera EF di creare il database per te, è necessario impostare il corretto inizializzatore nel costruttore del contesto.Ad esempio come questo:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top