我很想知道是否有任何合理的方法可以在实体CREATE MyDatabase
,mabye CREATE Table1
方法中创建自己的数据库DbContext
,InitializeDatabase
?
我知道带有POCO的EF 4.1会为我做,但现在看来如果我想在数据库初始化期间生成一些事件(参见编辑),我可能想在我的代码中生成数据库。
如果我想向最终用户报告数据库创建进度,我需要在我的代码中创建数据库ant表,为此,我需要弄清楚如何在我的代码中创建数据库(而不是表)
我试过了:
public void InitializeDatabase(MyContext context)
{
context.Database.ExecuteSqlCommand("Query to create table");
}
但问题是我需要首先创建数据库以创建表,但是如何做到这一点?或者有更好的方法来做我想要的事情?
修改
是的,我知道POCO会自动为我做这件事,但不幸的是,似乎我确实需要/想要通过我的代码用POCO创建数据库和表,原因是我想在数据库创建/初始化短语期间显示进度?我可以出来的唯一方法是创建数据库并通过我自己的代码创建表,并在每个表创建后生成事件。
答案 0 :(得分:0)
实体框架将尝试创建您在连接字符串中配置的数据库。只需确保连接到服务器的用户有权创建数据库。
答案 1 :(得分:0)
您正在做的事情看起来像Entity Framework Code First。
如果需要,可以在模型构建器Seed
方法中创建数据库和/表。
如果您的唯一目标是向用户报告进度,则无需使用自己的查询创建数据库。您可以使用ModelBuilder
OnModelCreating
。
答案 2 :(得分:0)