如何让Entity Framework Code First使用SQL Azure数据库?

8

我现在开始学习EF。 我想要做的是使用EF Code First在SQL Azure中创建新表。

这是我的代码:

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")
       {
       }
   }
}

代码后台:

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

Web.config:

<connectionStrings>
    <add name="TestDBContext" 
         connectionString="Server=tcp:mydb.database.windows.net,1433;Database=MYEF;User ID=[Username];Password=[MyPassword];Trusted_Connection=False;Encrypt=True;PersistSecurityInfo=True" 
         providerName="System.Data.SqlClient" />
</connectionStrings>

当我检查我的SQL Azure数据库时,没有表被创建,但EF仍在默认的SQL Server Express数据库中创建了表MYEF。是否有人成功地做到了这一点?
2个回答

15

非常感谢您~~ 您救了我的命! - EthenHY

0
EntityFramework试图从继承DbContext的类的名称中推断出web / app.config文件中ConnectionString的名称。在您的情况下,这是BlogContext。
如果您只是更改了

<connectionStrings><add name="TestDBContext"

<connectionStrings><add name="BlogContext" 

那么你可以执行 public BlogContext() 而不需要将硬字符串传递给基类。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接