【问题标题】:EF4 handling of Property CultureInfo and Localization属性 CultureInfo 和本地化的 EF4 处理
【发布时间】:2011-08-11 16:39:24
【问题描述】:

是否可以“破解”或让 EF4 处理 CultureInfo 和本地化?

public class Group
{
   prop string Name ( is Lanague specific )
   prop Group Prant
   prop int Id
}

我需要 EF4 实体框架来存储 Name 属性,该属性被标记为语言属性。 在检索特定语言的对象时,我还需要框架再次映射 name 属性。

原因是我不希望为对象加载所有语言/文化翻译。 如果所有翻译都已加载,那么它可能是来自数据库的巨大负载。

我在想,语言表是每个实体的,比如

public class Group_language
{
   prop int id
   prop string language
   prop string propertyname
   prop string translatedValue
}

这一切都可行吗?我的配置会是什么样子? 欢迎任何想法。

【问题讨论】:

标签: entity-framework-4 entity-framework-4.1


【解决方案1】:

在 EDMX 的情况下,可能可以将其映射到 query view 或映射的数据库视图(手动修改 EDMX),但您仍然需要映射原始表,并且您需要存储过程来进行插入、更新和删除,因为查询视图是只读的。您还需要在Group 实体上公开语言(否则存储过程没有足够的信息来执行插入/更新/删除)。

它是高级“逻辑”,而内置 EF 机制用于基本映射,没有任何数据驱动逻辑(TPH 继承和条件映射除外)。在这里,您希望基于某些逻辑从另一个表映射单个属性 = 您必须自己实现它,EF 不会帮助您太多。

【讨论】:

  • 我需要从代码中配置所有实体映射。如果我要通过 CustomUserType 和 Persisting 规则将其添加到 EF,这可能吗?
  • 如果您需要在代码中配置映射,EF 对您毫无帮助。您必须将 Group 表映射到 Group_language 表并在应用程序代码中自己处理所有内容。 EF 中没有自定义用户类型。
  • 根据您的陈述“您必须自己和 EF 实现它”,您是否知道从哪里开始或开始寻找连接 EF4 的方法?
  • EF 没有可扩展性挂钩。您必须在 EF 之外构建它。 EF 只会为您加载基本实体,您将在这些实体之上创建本地化对象。
  • 您知道在现实世界的应用程序中如何使用任何实体框架来实现特定的文化和本地化吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多