代码之家  ›  专栏  ›  技术社区  ›  Jay

在wcf上序列化nhibernate-detachedcriteria或linq-to-nhibernate表达式更好?

  •  2
  • Jay  · 技术社区  · 15 年前

    我想做的是:
    1。根据用户选择的条件创建任意LINQ查询
    2。对代理集合(Facade)的查询
    三。将查询转换为nhibernate DetachedCriteria 并序列化或只是序列化Linq表达式,然后
    4。通过wcf将序列化查询发送到服务器,其中
    5。服务实现对nhibernate代理执行查询,该代理
    6。对数据库执行SQL查询,其中
    7。返回查询结果,然后
    8。NHibernate将结果转化为一组poco,其中
    9。WCF序列化,然后
    10.返回到代理集合(facade),最后
    11。将结果返回到客户端代码。

    这似乎是一个疯狂的步骤,但是要求客户机只能通过WCF与服务器通信。

    我想这个问题的第一部分是,“我是否在做一些愚蠢的事情,用不同的体系结构可以更容易地解决,记住客户机不能直接访问数据库?”

    问题的第二部分是,在尝试将查询序列化为 分离标准菌 或者,如果我可以使用一个可用的表达式树序列化程序来序列化linq-to-nhibernate查询。

    我愿意 希望在代码中组合HQL或T-SQL。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Joel Martinez    15 年前

    嘿,杰伊,怎么样了!好吧,我认为如果WCF和动态客户机查询功能是很强的需求,那么这是一个很好的计划。您提到的表达式序列化程序绝对是我将坚持的难题之一。

    另一个可能涉及到实际应用这些表达对NHiberiate。我从来没有使用过nhibernate,但是如果它与实体框架类似,那么如果您针对不是由框架生成的poco编写查询表达式,就会有问题。

    昨天刚刚发布了一个新的开源项目:
    http://boostmap.codeplex.com/

    该lib的一个特性是dataqueryproxy,它允许您使iqueryable(即poco),但所有表达式都将被代理为iqueryable(即nhibernate类型)。

    不确定这是否对你有帮助,但祝你好运:—)