0

我们正在审查我们在工作中的一些实践——我们现在正在研究的具体事情是使用基于 Flex 的客户端和 .NET Web 服务进行 Comms 的最佳方法。

我们的典型方法是首先根据需求对交互进行建模,模拟一些 XML 消息并对其进行完整性检查,将它们转换为 XSD,最后在每一端构建与 XML 进行序列化的类。

这工作正常,直到我们访问数据库,然后像 Join Tables 这样的东西开始破坏我们所做的所有工作,以简化客户端。

我们已经尝试使用 LINQ to SQL 和其他 OR 映射器来解决这个问题,但是它们都没有真正解决问题而不引入更严重的问题。

所以,真正的问题是:如果不将 RDBMS 视为简单的对象存储,是否有更好的方法来处理复杂的数据需求,而无需编写大量的转换代码?

我想我正在寻找的灵丹妙药是知道什么是 Join 表以及如何处理它,并且仍然允许我为 Flex 生成“不错的”序列化 XML 并保留强大的 .NET 类型。

如果它可以分析每种方法所需的 SQL,生成存储过程并使用它们,则可以加分。但这可能要求太多了:)

注意重新“加入表”:

我们对此的定义是你有一个表,它有两个或多个外键作为它自己的主键。

例如:

Photos (PK PhotoID) <- PhotoTags (PK FK PhotoID, PK FK TagID) -> Tags (PK TagID)

当 Flex 客户端获得一个 Photo 对象时,它可能还会获得一个包含所有标签的列表。所以,这可能看起来像这样:

<照片 id="3">
 <标签>
   <tag name="公园" />
   <tag name="悉尼" />
 </tags>
</照片>

相反,我见过的 OR 工具给了我们:

<照片 id="3">
 <照片标签>
  <照片标签>
    <tag name="公园" />
  </照片标签>
  <照片标签>
    <tag name="悉尼" />
  </照片标签>
 </照片标签>
</照片>
4

1 回答 1

1

虽然我确信还有其他方法可以解决您的问题,但您是否有特定原因希望通过 Web 服务与 .net 进行通信?一个非常干净的解决方案是使用 WebOrb ( http://www.themidnightcoders.com/weborb/dotnet/ ) 之类的东西,他们有社区和商业产品,可以非常优雅地处理您描述的问题。

-MW

于 2008-09-15T17:04:23.983 回答