【问题标题】:Generated, namespaced POCO classes生成的命名空间 POCO 类
【发布时间】: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.EventsDatacontext.Promotions.Events 等,这将是无效的。
  • @DStanley 是的,你是对的。我想这需要每个命名空间额外的上下文,如下所示,或者某种别名。我猜我必须探索多种环境。
  • @DStanley 或者,可以在模板中处理此特定问题;在生成之前构建潜在属性名称列表和命名空间限定对(或更多)冲突。因此,EntertainmentEventsPromotionsEvents 将是上下文的属性,但相关实体将仅具有 Events如果它们没有同时引用这两种事件类型

标签: c# entity-framework edmx


【解决方案1】:

我建议为每个数据库架构创建一个上下文,将每个上下文放置到您喜欢的任何命名空间中。

【讨论】:

  • 感谢@SergeBelov,但是,不同上下文中实体之间的关系呢?按照我的示例表; Entertainment.EventPromotions.Event 可能分别出现在同一个 Location
  • @Bracketworks 这里有一个很好的讨论:stackoverflow.com/questions/158986/…
  • 谢谢@SergeBelov。我想我有一些阅读要做,并且要考虑改造;我对 EF 的理解还不够完整,但这似乎比必要的复杂。
猜你喜欢
  • 2013-10-22
  • 1970-01-01
  • 1970-01-01
  • 2014-05-23
  • 2016-04-08
  • 1970-01-01
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多