ASP.NET MVC 3 Entity Framework Disable Code First

I am doing a tutorial for ASP.NET MVC3 repository and instead of connecting to a connected database, EF creates a new database in SQLEXPRESS (code first). How to prevent this. With the configuration I'm using EF, I need to connect to an existing database, not create a new one. I have a DbContext class as shown below

using System.Data.Entity;
namespace MusicStore.Models
{
    public class MusicStoreEntities:DbContext
    {
        public DbSet<Album> Albums { get; set; }   
        public DbSet<Genre> Genres { get; set; }
    }
}

And my web.config has the following connection string

<connectionStrings>
    <add name="MusicStoreEntities"
         connectionString="data source=.\SQLEXPRESS;         Integrated Security=SSPI;       
         AttachDBFilename=|DataDirectory|\MvcMusicStore.mdf;       User Instance=true"
         providerName="System.Data.SqlClient" />
  </connectionStrings>
+3
source share
2 answers

In Application_Start (), set the database initialization strategy:

DbDatabase.SetInitializer<MusicStoreEntities>(
         new CreateDatabaseIfNotExists<MusicStoreEntities>());

This will use the default initializer and create the database only if it cannot find it. There are actually three possibilities:

  • CreateDatabaseIfNotExists
  • DropCreateDatabaseAlways
  • DropCreateDatabaseIfModelChanges

, Application_Start()

Database.SetInitializer<MusicStoreEntities>(new MusicStoreEntityInitializer());

, , , .

namespace MusicStore.Models
{
  public class MusicStoreEntityInitializer : 
           CreateDatabaseIfNotExists<MusicStoreEntityInitializer> 
  {
      protected override void Seed(MusicStoreEntity context)
      {
         base.Seed(context);

         // your code to populate db with test data
      }
  } 
}

.

+4

db Application_Start:

public class MusicStoreEntities: DbContext
{
    public DbSet<Album> Albums { get; set; }   
    public DbSet<Genre> Genres { get; set; }

    public MusicStoreEntities(string connectionString): base(connectionString)
    {
        Database.SetInitializer<MusicStoreEntities>(null);
   }
}

tutorial EF Code First. , .

+3

All Articles