0

Activerecord 为我们的数据库设计提供的那种灵活性,我们正在为我们的 DAL 寻找它并围绕它构建模型。我们将在这一切之上创建一个 WCF 服务。使用基于 NHibernate 的 Castle Activerecord 时是否有任何问题或兼容性问题?特别是当涉及到 WCF 使用的 DataContractSerializer 时。既然 ActiveRecord 不会使用 IQueryable,是不是太错过了?

4

2 回答 2

1

序列化对象 = 分离对象。一旦您通过 WCF 通过网络发送对象,这就是您所拥有的。

所以最大的问题是,当您将 NHibernate 与 WCF 结合使用时,您将要处理的是分离的对象,这迫使您编写代码的方式有所不同。你失去了 NHibernate 的缓存能力和延迟加载特性。您必须在通过电线运送它们之前预先加载您的聚合。

当然,如果您改用数据传输对象,那一切都没有实际意义,但是既然您提到了 ActiveRecord,我猜这不是计划。

我可能离这里很远。希望 ActiveRecord 大师可以提供更多细节。

于 2009-03-05T21:40:46.763 回答
1

虽然不特定于 WCF 和 Castle Activerecord,但我确实提供了警告。

确保您没有在持久层定义任何 CASCADING DELETE。让 ActiveRecord 为您处理这些,否则您稍后会遇到烦人的错误(收到 0 预期 1)键入不太清楚的内容。

此外,如果您需要频繁进行批量删除,则可能需要小心使用 ActiveRecord,因为 Castle 实现不支持批量删除,而是需要对要删除的每个项目进行昂贵的循环并进行单独的删除。

于 2009-03-05T21:50:19.910 回答