【问题标题】:Entity Framework 4 View Generation - Embedding files question and what about Source Control (TFS)实体框架 4 视图生成 - 嵌入文件问题以及源代码控制 (TFS) 怎么样
【发布时间】:2011-01-24 20:21:12
【问题描述】:

我正在为一个带有 Entity Framework 4 edmx 的类项目预生成视图,该 edmx 由 asp.net 应用程序使用。

我用作参考的资源是:

http://blog.willbeattie.net/2010/04/pre-generating-views-in-entity.htmlhttp://msdn.microsoft.com/en-us/library/bb896240.aspx

我遇到的问题与源代码管理有关,并且还提出了另一个关于将 csdl/msl/ssdl 文件嵌入到程序集中的问题。上面的文章表明需要将上述资源嵌入到程序集中,方法是将它们包含在项目中并设置要嵌入的文件。

但这让我想知道,由于这些文件是在构建时生成并在之后复制的,程序集不是总是包含 last 版本的 csdl/msl/ssdl 文件吗?由于这些文件是在构建时生成并在要嵌入的项目中标记的,因此嵌入到程序集中的文件似乎是先前在先前构建中生成的文件。

我的问题的核心是源代码控制。如果每次删除项目时我都在源代码管理中包含 csdl/msl/ssdl 文件,它将不会构建,因为这些文件将被标记为只读,并且当构建后过程尝试复制新生成的文件时,Visual Studio 将出错文件覆盖从源代码管理中删除的文件,这些文件被标记为只读。由于这些文件是构建项目所必需的,但直到项目构建后才生成,我目前看不到如何成功地将 csdl/msl/ssdl 文件检查到源代码控制中,只保留对它们的引用在那里的项目文件中。这适用于在预构建时生成的 Views.cs 文件,但不适用于在构建后复制的 csdl/msl/ssdl 文件。

【问题讨论】:

    标签: entity-framework visual-studio-2010 entity-framework-4


    【解决方案1】:

    我通过在MSDN 上找到的 t4 模板创建了我的 *.views.cs。

    这否定了所有构建前/构建后的事件并简化了流程。源代码控制也没有问题。 tt 文件是完全通用的,只需重命名即可用于任何 edmx。

    希望对你有帮助...

    【讨论】:

      【解决方案2】:

      程序集不是总是包含 csdl/msl/ssdl 文件的最新版本吗?

      这取决于您的构建顺序。

      如果您只是在构建后包含文件并生成视图,那么是的,您将获得以前的文件。一种解决方法是在您更改架构时构建两次,这通常不会经常发生。

      另一个解决方法是在构建后使用资源编辑器覆盖存储的文件。

      不确定如何修复源代码管理;我们使用非锁定源代码控制,这使得这不是问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-06
        • 1970-01-01
        • 2012-04-15
        • 2011-07-10
        • 1970-01-01
        • 1970-01-01
        • 2013-07-17
        相关资源
        最近更新 更多