我正在使用下载的(.net4 / mvc3)解决方案文件(来自信誉良好的源),其中web.config中存在连接字符串,但我没有看到创建数据库的明确指令,并且没有包含'密度纤维板”。我第一次构建时遇到了关于缺少CREATE数据库权限的运行时错误。所以我创建了一个空白数据库,并确保该字符串引用了一个SQL用户,该用户对刚刚创建的数据库具有.dbo / owner权限。
但后续版本似乎没有执行相同的初始化db脚本 - 无论何时存储它。
创建数据库的“首次使用”约定在哪里记录?
THX
答案 0 :(得分:0)
这是Entity Framework Code First的一个功能。我不确定你到底在寻找什么,但是搜索“EF Code First Initialization Strategy”可能有所帮助。
答案 1 :(得分:0)
我假设您正在讨论实体框架,它允许您从ObjectContext
对象的实例创建数据库,该实例用于EF中的任何一种方法(数据库,模型和代码) -first)。
查找实际调用ObjectContext.CreateDatabase()
的行。如果使用其中一个受支持的ADO.NET(SQL Server或SQL Server CE 4.0),则会生成所需的SQL语句。假设经典的Northwind示例,您可能会发现类似的内容:
NorthwindContext context = new NorthwindContext();
if (!context.DatabaseExists())
{
context.CreateDatabase();
}
如果这实际上是代码优先的应用程序,“lalibi”对于初始化策略是正确的,默认情况下不要求您显式创建数据库。 (但我的猜测是,它实际上使用的内部声明与我的非常相似)。