首先通过代码EF创建数据库

时间:2013-12-05 13:53:48

标签: c# entity-framework nuget

我的Cliente

有以下代码
public class Cliente
{
    public Cliente()
    {
    }
    public int id { get; set; }
    public string nome { get; set; }
    public string sobrenome {get;set;}
}

Login上课:

public class Login
{
    public Login()
    {
    }
    public int id { get; set; }
    public string login { get; set; }
    public string senha { get; set; }
}

Context上课:

public class Context : DbContext
{
    public Context(): base("name=Context")
    {
        Database.Connection.ConnectionString =@"data source=.\SQLEXPRESS;initial catalog=BancoTeste; Integrated Security=SSPI";
    }
    public DbSet<Cliente> Cliente { get; set; }
    public DbSet<Login> Login { get; set; }
}

我对编程很陌生,在互联网上找到了一些例子并试图做同样的事情

这段代码不是要创建数据库吗?

4 个答案:

答案 0 :(得分:1)

启动应用程序时,需要运行以下行:

Database.SetInitializer<Context>(new CreateDatabaseIfNotExists<Context>());

答案 1 :(得分:1)

除非您设置了数据库初始化程序,如@Michael所述,否则EF只会在您尝试访问数据库时创建数据库。因此,例如,如果您将以下内容添加到其中一个控制器,EF将创建它:

using (var context = new Context())
{
    var allClients = context.Cliente.ToList();
}

答案 2 :(得分:1)

这是使用Package Manager的另一种方式。

注意:您可能需要使用Visual Studio Extension Manager

安装Nuget Package Manager

找到您的软件包管理器控制台,然后运行以下命令

//(Get the latest version of Entity Framework for you (May not need if you have it))
PM> Install-Package EntityFramework 

// (This will enable database migrations from your model to database)
PM> Enable-Migrations

//(Create a database migration in SolutionExplorer\Migration folder for you)
PM> Add-Migration GiveItAProperName 

//(This will commit those changes to the database or create the database)
PM> Update-Database 

//In the future, if you change your model, do the following to update the database
PM> Add-Migration MyFirstChangesToTheDatabase
PM> Update-Database 

您可以向上述PM命令添加更多参数,请使用get-help commandName获取更多信息

答案 3 :(得分:0)

另一种解决方案是使用实体迁移。

您可以使用程序包管理器控制台中的命令创建新的迁移并使用更新的模型更新数据库。

Example here

使用此解决方案,您可以生成用于升级和降级数据库的代码。