【发布时间】:2012-11-14 09:03:06
【问题描述】:
(我觉得我在这里遗漏了一些重要的东西。)
我正在为实体使用“数据库优先”方法创建 WCF 数据服务 (5.0)。
我使用. (dot) 创建了具有“namespaced”名称的表,例如[Entertainment.Event] 和[Promotions.Event]。
EF 4.x POCO 生成器模板当然可以通过调用 CSharpCodeProvider.CreateEscapedIdentifier() 来解决这些问题。
我非常想生成(并重新生成,并适当映射)命名空间的 POCO;具体来说,保留表的隐含命名空间。
就实现这一点而言,我在看什么?我猜这需要花一段时间来浏览 T4 模板。
最终,这可行吗?
【问题讨论】:
-
我不知道这将如何工作 - 表示表的上下文属性将是
DataContext.Entertainment.Events、Datacontext.Promotions.Events等,这将是无效的。 -
@DStanley 是的,你是对的。我想这需要每个命名空间额外的上下文,如下所示,或者某种别名。我猜我必须探索多种环境。
-
@DStanley 或者,可以在模板中处理此特定问题;在生成之前构建潜在属性名称列表和命名空间限定对(或更多)冲突。因此,
EntertainmentEvents和PromotionsEvents将是上下文的属性,但相关实体将仅具有Events(如果它们没有同时引用这两种事件类型)
标签: c# entity-framework edmx