1

我有一个 3 层应用程序,需要能够根据用户请求进行数据过滤,我正在使用 fluentnhibernate 来管理我的实体的 crud。

我的问题是如何将过滤器从客户端传递到服务器(通过 wcf)。

fn 的过滤器类不可序列化。

任何解决方案?

4

1 回答 1

1

简而言之:创建一个包含过滤器规范的可序列化对象。对于简单的过滤器,枚举应该就可以了。然后,在您的 WCF 服务中,将此过滤器规范映射到应用程序的较低层可以理解的内容。

NHibernate(和其他对象关系映射器)与数据库检索相关联。将您的客户端 UI 与您的持久性系统如此紧密地耦合并没有真正意义,并且通过尝试使用 NHibernate 过滤器对象,您将使用它们来完成它们不是为它们设计的用途。

我见过的一些应用程序有多个层,每个层都有自己的数据类型:一层用于 UI,一层用于 UI 上的验证逻辑,一层用于客户端和服务之间的数据传输,一层用于服务器域中的业务逻辑,和一个持久性。这可能看起来很极端,但这意味着对象可以正确反映每个特定关注点的需求。

例如,您可能需要妥协您的数据类型以使您的对象跨服务边界进行序列化。在此处使用与 UI 和业务逻辑层中使用的对象不同的对象可以隐藏任何丑陋之处。

于 2009-07-11T06:17:26.453 回答