How to make Entity Framework Code First use the SQL Azure DB?

azure azure-sql-database c# ef-code-first entity-framework


I'm start to learn EF now. What I want to do is use EF code first create new tables in SQL Azure.

Here is my code:

namespace WebApplication2
   public class Blog
       public int UserName { get; set; }
       public int ID { get; set; }

   public class BlogContext : DbContext
       public DbSet<Blog> Blogs { get; set; }

       public BlogContext() : base("MYEF")

Code behind:

 protected void Page_Load(object sender, EventArgs e)
        using (var db = new BlogContext())
            var blog = new Blog { UserName = 456 };


    <add name="TestDBContext" 
         connectionString=",1433;Database=MYEF;User ID=[Username];Password=[MyPassword];Trusted_Connection=False;Encrypt=True;PersistSecurityInfo=True" 
         providerName="System.Data.SqlClient" />

When I check my SQL Azure DB, no table has been created, EF still create the table MYEF in the default SQL Server Express database.

Has anyone done this successfully?

11/28/2014 9:50:03 PM

Accepted Answer

You should pass the connection string name to the base constructor of your BlogContext like this

public BlogContext()
    : base("TestDBContext")

4/29/2013 5:24:47 PM

Popular Answer

EntityFramework tries to infer the name of the ConnectionString in the web/app.config file from the name of the class which inherits DbContext. In your case, this is BlogContext.

If you simply changed

<connectionStrings><add name="TestDBContext"


<connectionStrings><add name="BlogContext" 

then you could do public BlogContext() without passing a hard string to the base class.

Related Questions


Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow