Entity Framework 4 CTP 5 POCO - 在托管环境上使用现有但空的 SQL 数据库?
我将 EF 4 CTP 5 与 MVC 3 应用程序一起使用,一切都在我的本地计算机上正常工作,其中 EF 4 只需在需要时创建或删除 SQL CE,因为我已将选项设置为 DropCreateDatabaseIfModelChanges< /代码>。但我现在尝试将我的 mvc 应用程序部署到托管环境,我已经在其中创建了数据库,但数据库是空的。似乎代码无法删除,并在我的托管环境中重新创建数据库,我应该如何解决这个问题?
更新:
这是 SQLEXPRESS 的连接字符串:
<add name="KennySax"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
database=KennySax;
AttachDBFilename=|DataDirectory|KennySax.mdf;
User Instance=true"
providerName="System.Data.SqlClient" />
谢谢。
I'm using EF 4 CTP 5 with an MVC 3 application, everything is working fine on my local machine, where EF 4 just create or drop the SQL CE whenever it needs to, since I have set the option to DropCreateDatabaseIfModelChanges
. But I'm now trying to deploy my mvc application to a hosting environment, where I've created the database already, but the database is empty. It seems like the code can't drop, and recreate the database on my hosting environment, how should I solve this problem?
Update:
Here's the connection string to SQLEXPRESS:
<add name="KennySax"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
database=KennySax;
AttachDBFilename=|DataDirectory|KennySax.mdf;
User Instance=true"
providerName="System.Data.SqlClient" />
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
另一种选择是使用 Joachim Lykke Andersen 的 DontDropDbJustCreateTablesIfModelChanged 数据库初始化程序
如果模型更改,它会删除并重新创建表
他甚至有一个 NuGet 包为了它
One other option is to use Joachim Lykke Andersen's DontDropDbJustCreateTablesIfModelChanged database initializer
It deletes and re-creates the tables if the model changes
He even has a NuGet package for it
通常,您在托管环境中运行的应用程序没有修改数据库结构的权限。因此,您可以在自己的环境中运行应用程序并使用 Management studio 连接到 SQL CE。然后从数据库生成 SQL 脚本并在托管环境中手动运行该脚本。我希望它可以与 SQL CE 一起使用 - 它肯定可以与 SQL Express 一起使用。
Usually your running application in hosting environment doesn't have permissinons to modify DB structure. So you can run your application in your own environment and use Management studio to connect to SQL CE. Then generate SQL script from your DB and manually run that script in hosted environment. I hope it works with SQL CE - it will definitely work with SQL Express.
好吧,我不确定我做了什么,似乎重新启动机器解决了问题。我能够让 SQLEXPRESS 创建数据库并在托管服务器上运行脚本。谢谢。
Well I'm not sure what I did, seems like a restart of the machine solved the problem. I was able to have SQLEXPRESS create the database and run the script on the hosting server. Thanks.