Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# fluentnhibernate 3层以上应用程序的过滤基础架构_C#_Wcf_Fluent Nhibernate_Filtering - Fatal编程技术网

C# fluentnhibernate 3层以上应用程序的过滤基础架构

C# fluentnhibernate 3层以上应用程序的过滤基础架构,c#,wcf,fluent-nhibernate,filtering,C#,Wcf,Fluent Nhibernate,Filtering,我有一个三层应用程序,需要能够根据用户请求进行数据过滤,我正在与fluentnhibernate合作管理实体的crud 我的问题是如何将筛选器从客户端传递到服务器(通过wcf) fn的筛选器类不可序列化 任何解决方案?简而言之:创建一个包含过滤器规范的可序列化对象。对于简单的过滤器,枚举应该很好。然后,在您的WCF服务中,将此过滤器规范映射到应用程序较低层理解的内容 NHibernate(和其他对象关系映射器)与数据库检索相关联。如果客户端UI与持久化系统如此紧密地耦合,并且试图使用NHiber

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

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

fn的筛选器类不可序列化


任何解决方案?

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

NHibernate(和其他对象关系映射器)与数据库检索相关联。如果客户端UI与持久化系统如此紧密地耦合,并且试图使用NHibernate筛选器对象,那么您将使用它们来完成它们不是为之设计的任务,这是没有意义的

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


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

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

NHibernate(和其他对象关系映射器)与数据库检索相关联。如果客户端UI与持久化系统如此紧密地耦合,并且试图使用NHibernate筛选器对象,那么您将使用它们来完成它们不是为之设计的任务,这是没有意义的

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


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

删除的WPF标记作为问题与该技术没有关系。删除的WPF标记作为问题与该技术没有关系。您不认为使用nhibernate?Chen的Abstrarvct Restitution更好吗?我看到使用限制,或者来自NHibernate的任何类,是通过这样做,您将NHibernate名称空间和引用推送到您的客户机上。许多人喜欢将NHibernate抽象到他们的服务层后面。在这种情况下,他们必须创建自己的criteria对象,然后将该对象映射到NHibernate criteria。您不认为使用NHibernate的Abstrarvct Restriction更好吗?Chen-我看到使用限制的问题,或者NHibernate的任何类,通过这样做,您可以将NHibernate命名空间和引用推送到您的客户机上。许多人喜欢将NHibernate抽象到他们的服务层后面。在这种情况下,他们必须创建自己的criteria对象,然后将该对象映射到NHibernate criteria。