[英]Create a database using code-first migrations: What is the order of operations between db.Initialize(…) and db.Create()?
假设我有对System.Data.Entity.Database
的引用,例如
Database db = context.Database;
我想
直接从C#平台(不是Package Manager控制台)访问。
我有
if(!db.Exists())
{
db.Create();
}
首先。 但是我不确定何时/是否需要使用db.Initialize
。 这与db.Create
有何不同? 有人可以解释吗?
此外,当我查看文档时会说有关Create
请注意,在数据库初始化策略运行之前调用此方法将禁用该策略的执行。
这意味着什么?
有四种不同的数据库初始化策略:( http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-first.aspx )
CreateDatabaseIfNotExists
DropCreateDatabaseIfModelChanges
DropCreateDatabaseAlways
Custom DB Initializer
您可以通过以下方式设置策略:
Database.SetInitializer<MyContext>(new CreateDatabaseIfNotExists<MyContext>());
此策略在您第一次触发任何sql命令到您的数据库或在调用Initialize
方法期间自动运行。 因此,您无需调用它,无论如何它将被调用。
但是,如果调用Create
方法,则意味着您只想创建新的数据库而忽略初始化策略。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.