试图部署实体框架Code First应用程序没有太多运气?最佳部署策略?

时间:2011-10-07 22:30:58

标签: sql-server deployment entity-framework-4.1 ef-code-first

尽管有一些小问题和一些解决方法,我的基于MVC的实体框架(代码优先)应用程序现已完成并可以部署。

我最初尝试通过SQL Express进行开发,然而,我在Code First方法中遇到了I asked about here的不间断问题,这使得它完全不可行。

所以,最后,我按照大多数指南开发了它并使用了SQL Compact Edition。这对于开发来说是绝对精彩的 - 但是 - 现在它已经部署并且我被卡住了。

我见过有人说过从.SDF文件生成架构,但是,Compact版本中存在差异和限制,例如nvarchar的长度限制为4000 ,我的申请需要最多。

基本上,我该怎么办?

此外 - 但不是必需的 - 我将很快转到下一个项目,它将涉及大量使用需要存储在长度超过4000个字符的数据库中的项目。现在是否有更好的策略用于开发/是否可以将Code First与SQL Server Express或SQL Full一起使用(我有MSDN并愿意安装/使用任何有用的东西)。

3 个答案:

答案 0 :(得分:2)

以下是我的非正式建议:

  • 对于大多数基于MVC的生产应用程序而言,SQL CE不是一个可行的选择(尽管我在极少数情况下在生产服务中使用过它)。
  • 我会尽量避免在开发和生产之间切换数据库 - 即,不要在SQL CE上测试并部署到SQL Express或其他东西。
  • 我从未尝试在Visual Studio中打开MDF - 也许我误解了你在这里说的内容,但总的来说我建议使用特定于SQL Server的工具来管理数据库:{{3} }。
  • 关于另一篇文章,我通常不鼓励使用连接字符串的AttachDBFilename部分,除非您出于特定目的需要它。
  • 听起来您可能想要查看可用的数据库初始化策略:http://www.microsoft.com/download/en/search.aspx?q=sql+server+management+studio+express
  • 我们的博客和MVC MSDN网站上有很多演练 - 如果这些不适合您,请随时通过我们的博客与我们联系并提供有关我们可以做得更好的反馈!

我们的博客:http://blog.oneunicorn.com/2011/03/31/configuring-database-initializers-in-a-config-file/ MVC演练:http://blogs.msdn.com/b/adonet/

答案 1 :(得分:1)

一方面,关于部署/迁移,您可能需要查看http://exportsqlce.codeplex.com

另一方面,我一直在检查Microsoft SQL Server Compact 4.0 Books Online,原则上没有包含数据类型的已知问题,但您提到的nvarchar限制已得到确认。

最后,为了制定策略,您可能会对Differences Between SQL Server Compact and SQL Server

感兴趣

答案 2 :(得分:1)

您需要创建调试和特定于发布的web.config文件:

  • 在发布特定文件中删除连接字符串,因此它会为您创建数据库。

  • 在调试特定文件中,保留连接字符串。

但是,我建议您不要使用连接字符串,而是使用SQL Management Studio。鉴于Compact Edition不支持您的要求,现在是转换的好时机......