【问题标题】:Problem building a custom object off an XML column/string using Entity Framework repository to POCO使用 Entity Framework 存储库到 POCO 从 XML 列/字符串构建自定义对象时出现问题
【发布时间】:2011-08-19 00:23:54
【问题描述】:

我在存储库模式中使用 Entity Framework 4.0 来填充我在另一个程序集中的 POCO 对象。我的一个对象包含来自数据库的 XML 列(类上的字符串类型)。

不幸的是,这个 XML 字符串包含我需要用来检索其他对象(使用存储库)以构建另一个自定义对象的主键 ID。我一直在尝试使用域对象上的自定义 get 访问器来执行此操作,该访问器尝试解析 XML,然后从存储库中获取。问题是这导致我的模型需要存储库并给我一个循环依赖。

有什么好的方法可以做这样的事情吗?也许一些自定义代码可以解析 EF 存储库层中的 XML 列并将我需要的内容映射到模型中的自定义对象上??

非常感谢任何回复,谢谢!

【问题讨论】:

    标签: c# entity-framework domain-driven-design repository-pattern poco


    【解决方案1】:

    不,没有办法告诉 EF XML 列实际上是其他实体类型。一旦将逻辑移至 get 访问器,您确实会破坏创建模型对持久性的依赖,这是您试图通过使用 POCO 删除的东西。它会破坏你的领域驱动设计。

    在域驱动设计中,加载对象是存储库的严格责任。因此,您需要以允许您请求加载相关实体的方式构建您的检索方法,例如:

    • 在同一个存储库方法中加载主对象、解析 XML 和加载关系
    • 或在单个方法中加载主对象并在另一个方法中解析 XML 和加载关系

    如果主对象不是关系的聚合根(它们可以单独存在),您应该为相关对象创建单独的存储库并公开方法以加载由 XML 字符串定义的对象。

    【讨论】:

      猜你喜欢
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多