【问题标题】:Entity Framework Database first from non-English DB实体框架数据库首先来自非英语数据库
【发布时间】:2017-10-10 08:36:45
【问题描述】:

我想使用 DB first Entity Framework,但我的源 DB 不是英文的。
有没有办法拦截 DbContext 模型的生成,并为部分/所有表和列名(其他语言列名 -> 英文列名)提供映射?
我不确定是否有可能为此使用 T4 模板。

【问题讨论】:

  • T4 模板不仅有可能,而且是唯一的方法。没有用于数据库优先模型创建的拦截框架。但在你展示一些实现代码之前,这个问题在 Stack Overflow 上是题外话。

标签: entity-framework generator translation dbcontext non-english


【解决方案1】:

似乎还有另一种方法可用,而且似乎更适合我,所以我采用了。
EF 的主要 edmx 文件原来只是一个 XML 文档,所以我在旧的/非英语表/列名称之间创建了一个 CSV 映射文件,并创建了一个小的 nodejs 脚本来替换所有出现的:

<Property Name="OLD_NAME"
<ScalarProperty Name="OLD_NAME"
<PropertyRef Name="OLD_NAME"

..带有新/模型名称。我只将它应用在 edmx 模型和映射部分,虽然不是一个完整的解决方案,但它花了我 95% 的时间。我仍然需要重命名 NavigationProperties,但我会在 edmx 设计器中手动完成,因为它们并不多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 2019-01-10
    • 2012-09-03
    相关资源
    最近更新 更多