使用Castle ActiveRecord / NHibernate和WCF时有任何问题吗?

时间:2009-03-05 19:37:51

标签: wcf nhibernate castle-activerecord

Activerecord为我们的数据库设计提供的灵活性,我们正在为它的DAL和它周围的构建模型。我们将在所有这些之上创建一个WCF服务。使用基于NHibernate的Castle Activerecord时是否存在任何问题或兼容问题?特别是涉及到WCF使用的DataContractSerializer。因为ActiveRecord不会使用IQueryable,所以要错过太多了吗?

2 个答案:

答案 0 :(得分:1)

序列化对象=已分离对象。一旦你通过WCF通过线路发送一个对象,这就是你所拥有的。

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

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

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

答案 1 :(得分:1)

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

确保在persistance图层上没有定义任何CASCADING DELETE。让ActiveRecord为你处理那些你以后会遇到烦人的错误一个(收到0预期的1)输入不太清楚的东西。

此外,如果您需要经常批量删除,您可能需要小心使用ActiveRecord,因为Castle实现不支持批量删除,而是需要对要删除的每个项目进行代价高昂的循环并且单个删除到发生。