Entity Framework 4 代码生成项忽略自定义工具命名空间

发布于 2024-10-08 19:16:42 字数 214 浏览 4 评论 0原文

我有一个运行模型第一实体框架 edmx 文件的项目。我已经设置了自定义工具命名空间,以便实体最终位于我想要它们的命名空间中。这已经工作了一段时间。

我现在需要自定义生成的代码,为此我添加了一个代码生成项,但是默认情况下生成的代码会忽略自定义工具命名空间。

除了可以编辑tt文件之外,代码生成项还有什么不同呢?另外,关于如何更正默认代码生成项以使其尊重自定义工具命名空间有什么想法吗?

I have a project that runs off a model first entity framework edmx file. I've set the custom tool namespace so that the entities end up in the namespace I want them in. This has worked fine for a while.

I now need to customise the generated code, to that end I have added a code generation item, but the code that this generates by default ignores the custom tool namespace.

Apart from the fact I can edit the tt file, what else is different about the code generation items? Also, any thoughts on how to correct the default code generation item so that it respects the custom tool namespace?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

揽月 2024-10-15 19:16:42

如果您检查 TT 模板文件,您将看到一个指定自定义工具命名空间的属性(在属性窗口中)。在此处设置您的命名空间,模板应在其代码生成中使用此名称空间,请注意,这是在 TT 文件上,您需要对用于 EDMX 生成的所有 TT 文件执行此操作。它不使用 EDMX 文件中指定的文件。

该修复程序可能会纠正此行为,但不要害怕深入了解 TT。我有一篇文章详细介绍了您可能想要进行的一些更改。

http: //slappyza.wordpress.com/2010/08/08/getting-the-entity-framework-to-generate-an-interface-for-mocking/

我还发现了 VB 版本的一些其他问题。不确定它们是否已修复。

http:// slappyza.wordpress.com/2010/08/03/bug-in-the-ado-net-entity-framework-poco-generator/

If you inspect the TT template file you will see a property (in the properties window) that specifies custom tool namespace. Set your namespace here and the template should use this in its code generation, note this is on the TT file, you will need to do this for all TT files you use for your EDMX generation. It does not use the one specified in the EDMX file.

The fix may rectify this behaviour, but don't be scared to dive into the TT. I have a post detailing some changes you may want to make.

http://slappyza.wordpress.com/2010/08/08/getting-the-entity-framework-to-generate-an-interface-for-mocking/

I also spotted a couple of other issues with the VB version. Not sure if they have been fixed.

http://slappyza.wordpress.com/2010/08/03/bug-in-the-ado-net-entity-framework-poco-generator/

坚持沉默 2024-10-15 19:16:42

最简单的解决方案是编辑 .tt 文件。

你需要找到

string namespaceName = code.VsNamespaceSuggestion();

然后你可以用你的自定义命名空间替换它:

string namespaceName = "YourCustomNamespace";

The easiest solution would be to edit the .tt file.

You need to find

string namespaceName = code.VsNamespaceSuggestion();

Then you can replace it with your custom namespace:

string namespaceName = "YourCustomNamespace";
超可爱的懒熊 2024-10-15 19:16:42

更改项目的默认命名空间并重建项目。

Change the project's default namespace and rebuild your project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文