我正在学习实体框架,我想用它创建一个项目。我在我的项目中使用FluentNhibernate,但现在我想尝试Entity,但我对如何在加载应用程序时创建所有表(DBSet)有疑问。在我的情况下,我有3个表:Cliente, Produto, Venda
,我想在加载应用程序时创建,但我不知道如何执行此操作。
我怎么能这样做?
试图
[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
public class DatabaseContext : DbContext{
public DatabaseContext():base("default"){
Database.SetInitializer<DatabaseContext>(new CreateDatabaseIfNotExists<DatabaseContext>());
//Database.CreateIfNotExists();
}
public DbSet<Cliente> clientes { get; set; }
public DbSet<Produto> produtos { get; set; }
public DbSet<Venda> vendas { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder){
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Produto>()
.Property(p => p.valor)
.HasPrecision(9,2); // or whatever your schema specifies
Database.SetInitializer<DatabaseContext>(null);
base.OnModelCreating(modelBuilder);
}
}
答案 0 :(得分:1)
假设您已经拥有所有DbContext和实体设置,而您只是询问有关生成/更新数据库的信息,那么您正在寻找实体框架的迁移功能。
打开软件包管理器控制台并在项目中运行以下命令:
// Enable migrations to your project
Enable-Migrations
// Add migrations to your project
Add-Migration
// Update any changes to the generated database
Update-Database
&#13;
此处有更多详情: https://martinnormark.com/entity-framework-migrations-cheat-sheet/
答案 1 :(得分:1)
在 OnModelCreating 方法中删除:
Database.SetInitializer<DatabaseContext>(null);
我建议你阅读:
http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-first.aspx
关于自动迁移: http://www.entityframeworktutorial.net/code-first/automated-migration-in-code-first.aspx