Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架4视图生成-嵌入文件问题和关于源代码管理(TFS)的问题_Entity Framework_Visual Studio 2010_Entity Framework 4 - Fatal编程技术网

Entity framework 实体框架4视图生成-嵌入文件问题和关于源代码管理(TFS)的问题

Entity framework 实体框架4视图生成-嵌入文件问题和关于源代码管理(TFS)的问题,entity-framework,visual-studio-2010,entity-framework-4,Entity Framework,Visual Studio 2010,Entity Framework 4,我正在使用Entity Framework 4 edmx为类项目预生成视图,该项目由asp.net应用程序使用 我用作参考的资源有: 和 我遇到的问题与源代码管理有关,并且还提出了另一个关于将csdl/msl/ssdl文件嵌入程序集中的问题。上面的文章通过将上述资源包含在项目中并设置要嵌入的文件,说明了将这些资源嵌入程序集中的必要性 但这让我想知道,既然这些文件是在构建时生成的,并在构建后进行复制,那么程序集不总是包含最新版本的csdl/msl/ssdl文件吗?由于这些文件是在生成时生成的,

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

我用作参考的资源有:

我遇到的问题与源代码管理有关,并且还提出了另一个关于将csdl/msl/ssdl文件嵌入程序集中的问题。上面的文章通过将上述资源包含在项目中并设置要嵌入的文件,说明了将这些资源嵌入程序集中的必要性

但这让我想知道,既然这些文件是在构建时生成的,并在构建后进行复制,那么程序集不总是包含最新版本的csdl/msl/ssdl文件吗?由于这些文件是在生成时生成的,并在项目中标记为要嵌入,因此嵌入到程序集中的文件似乎是以前在生成时生成的文件

我的问题的核心是源代码控制。如果每次关闭项目时都在源代码管理中包含csdl/msl/ssdl文件,则不会生成该文件,因为这些文件将标记为只读,并且在生成后过程尝试将新生成的文件复制到源代码管理中标记为只读的文件上时,Visual Studio将出错。由于这些文件是构建项目所必需的,但在构建项目之前不会生成,因此我目前不知道如何才能成功地将csdl/msl/ssdl文件签入源代码管理,而只是在项目文件中保留对它们的引用。这适用于在预生成时生成的Views.cs文件,但不适用于在生成后复制的csdl/msl/ssdl文件

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

这取决于你的建造顺序

如果只包含文件并在生成后生成视图,那么是的,您将获得以前的文件。一个修复方法是在更改模式时构建两次,这通常不太常见

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


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

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

这否定了所有构建前/构建后事件,简化了过程。源代码管理也没有问题。 tt文件是完全通用的,只需对其重命名,即可对任何edmx重复使用

希望对你有帮助