【问题标题】:Support SQL Server 2005 and 2008支持 SQL Server 2005 和 2008
【发布时间】:2011-04-13 09:49:21
【问题描述】:

我想知道如何针对 SQL Server 2008 和 2005 使用实体框架?

我针对 SQL Server 2008 开发了一个应用程序,并希望它可以在 2005 和 2008 下运行。 我知道可以在 Texteditor 的 edmx 架构文件中将 ProviderManifestToken 从 2008 年更改为 2005 年。但是在我从数据库更新我的模型后,它会将 ProviderManifestToken 更改回 2008 年。

当我从数据库更新模型时,如何告诉 Visiual Studio 使用 2005 架构?

感谢您的帮助!

尼哥

【问题讨论】:

    标签: .net sql-server-2005 visual-studio-2010 entity-framework sql-server-2008-r2


    【解决方案1】:

    阅读我在 EF 和 ProviderManifestToken 上的 blog post

    使用MSBuild.Community Tasks,我添加了一个BeforeBuild Target,它使用XmlUpdate 任务始终将ProviderManifestToken 更改为2005,以防有人通过更新数据模型对其进行更改。

    这是 BeforeBuild 目标:

    <Target Name="BeforeBuild"> <XmlUpdate Prefix="ssdl"
                Namespace="http://schemas.microsoft.com/ado/2009/02/edm/ssdl"
                XPath="//ssdl:Schema/@ProviderManifestToken"
                XmlFileName="Model.edmx"
                Value="2005"/>
    

    【讨论】:

      【解决方案2】:

      我认为手动(hack!)edmx 更改是目前唯一的方法。当您忘记并将其部署到 2005 的环境时尤其烦人。:)

      我想知道另一种方式...

      【讨论】:

      • 查看我的blog 以获得在 MSBuild 中使用 BeforeBuild 目标的另一个建议。
      • 你好,杰克。感谢您的更新,这是一篇很好的博客文章。有时间我会试试看的。
      【解决方案3】:

      最简单的方法是在 SQL 2008 服务器上将源数据库置于 SQL 2005 兼容模式(级别 90)。您可以使用 ALTER DATABASE 来执行此操作。

      【讨论】:

        猜你喜欢
        • 2010-12-08
        • 2013-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多