我的应用程序使用EF代码优先设计,所有的一般工作得很好。EF代码第一次数据库/表初始化 - 什么时候发生?
通过一个私有配置文件,我可以指定如何让EF处理对db模式的更改,并根据需要创建/重新创建相关表 - 这些选项是“never”,“create”,“always” ,“onSchemaChanged”和(将来)“onSchemaModified”。
这种运作良好 - 但我在几个地方迷路.....
在开发过程中,我想用在 “Database in use error with Entity Framework 4 Code First”中描述的钩 - 但这似乎执行在我的节目”
public void InitializeDatabase(Context context)
{
context.Database.SqlCommand("ALTER DATABASE Tocrates SET SINGLE_USER WITH ROLLBACK IMMEDIATE");
_initializer.InitializeDatabase(context); // Maybe this does nothing if not needed
context.Database.SqlCommand("ALTER DATABASE Tocrates SET MULTI_USER")
}
所以..真实,我的问题的每一次运行:有,我可以用它来检测是否EF实际上是试图修改数据库的覆盖,这样我就可以设置此SINGLE_USER东西何时需要?如果是这样,我可以检测到原因 EF正在执行所以(看我上面的选项列表),所以我可以登录更改的原因?...
非常感谢所有的帮助和建议。
非常好!这正是我正在寻找的 - 谢谢。 – JcMaltaDev