我一直在使用EF一段时间,始终采用Model-First方法。现在我正在通过Code-First土地冒险。 问题是:我一直遇到自动创建表格的问题。
根据一些网站的说法,这是可能的。我尝试过他们的方法但没有成功。
这是我尝试过的一件事:Database.CreateIfNotExists()
没有运气......
我的连接字符串非常完美且有效。如果我手动添加表,它确实有效。问题是当我没有创建表时。它只是没有像我说的那样创造。
我的课程装饰正确。 (再次:当我创建DB时它正在工作)
有什么建议吗?这个功能真的有效吗?
我正在使用:
Visual Studio 2010 Professional
EntityFramework 4.3.1(虽然我也试过4.1)
SQL Server 2008 R2
提前致谢。
答案 0 :(得分:5)
实体框架中包含三个数据库初始化程序,它们都实现了IDatabaseInitializer<Context>
接口。他们是:
如您所见,默认API没有只创建表的初始化程序,而是完成整个数据库。然而,人们已经创建了其他初始化器,有一个与您想要的完全相同。
它位于Nuget包EFCodeFirst.CreateTablesOnly
另一种选择是创建自己的初始化程序,如果这是你真正需要的东西。