【问题标题】:Forcing Entity Framework generated classes to have Pascal casing and column names to have Camel casing强制实体框架生成的类具有 Pascal 大小写和列名具有 Camel 大小写
【发布时间】:2013-02-14 10:32:30
【问题描述】:

我一直在使用 Entity Framework 4 和 SQL Server。我发现的主要问题是数据库中的表名都是小写并且有下划线。这意味着当我在 Visual Studio 中创建实体时,类和属性都是带有下划线的小写字母。有没有办法为创建的类实现 Pascal 大小写和属性的 Camel 大小写?

例如:

table_name-->要转换为TableName

是否需要添加任何其他模板或任何其他方式来实现这一点。

不建议手动编辑类名和属性,因为我有大量实体

【问题讨论】:

  • 您必须在设计器中手动更新实体,然后才能正确生成您的类。
  • @LadislavMrnka 手动更新是一个乏味的过程,因为在我的情况下它包含大量实体
  • @LadislavMrnka 有没有办法在生成 edmx 文件时强制在 pascal 大小写中创建类,或者在创建 edmx 后自动重命名所有类..
  • 嗯,EDMX 是 XML 文件,因此您可以编写一些脚本自动为您完成。

标签: c# entity-framework entity-framework-4 camelcasing pascalcasing


【解决方案1】:

为什么不使用 T4 模板来生成实体类?这样,您可以添加一个方法来将表名转换为您选择的约定。

VS 带有几个用于 EF 的内置 T4 模板,因此您很可能只需选择其中一个并对其进行修改。我不建议从头开始编写自己的代码!

如果您之前没有使用过 T4 模板,快速入门是在设计器中打开您的 EF 模型,右键单击设计图面的空白部分并选择“添加代码生成项”。这将打开一个对话框,其中包含已安装的 EF T4 模板,您可以选择您认为最合适的模板。

然后您可以在解决方案资源管理器中右键单击 T4 模板文件(它将具有 .tt 扩展名)并选择“运行自定义工具”以自行生成实体。您可以编辑 .tt 文件(它只是一个纯文本文件,包含一些看起来非常像 VBScript 的东西!)并进行修改。然后再次运行自定义工具,查看生成的实体名称是否正确。

希望这会有所帮助。

【讨论】:

  • 做同样的事情...但是.tt文件包含大量代码..我应该编辑什么...我已经检查了转换为Pascal Casing的方法,但似乎没有任何可用的。 .. 我应该添加任何自定义方法还是应该更改任何可用方法..?
【解决方案2】:

以下博客文章对如何执行此操作有很好的回应。它涉及修改创建数据模型时创建的T4模板文件。

http://khalidk7.wordpress.com/2014/04/21/entity-framework-ef-t4-template-modification-to-output-pascalcasing-database-objects/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 2017-09-02
    相关资源
    最近更新 更多