我需要一个列出订单和关联数据的网格。 (纯属虚构示例)XML路径vs更多连接
为了简单:
OrderID
OrderName
OrderDate
Collection Parts
Collection Destinations
Collection SuppliersInvolved
网格应显示每个订单,而且从每个集合的文本描述, 例如:现在
OrderID OrderName OrderDate Parts Destinations SupplierInvolved
2 davo 21/5/12 A,B,C London, Paris SuppA,SuppB,SuppC
,该网格可以有多达两百行。
这个问题是,我们使用的定制ORM有一些将多PK结果集映射到唯一对象中的主要缓慢问题。
例如。
OrderID OrderName OrderDate Part Destination Supplier
2 davo 21/5/12 A London SuppA
2 davo 21/5/12 B London SuppA
2 davo 21/5/12 A London SuppB
2 davo 21/5/12 B London SuppB
即使在结果集中涉及1个集合,它也有这个问题。查询本身执行得非常好,很快,这就是问题的映射。
所以,我有两种选择真的(据我可以看到):
拿到订单的结果集,对于结果集每一个订单,取件,取目标,获取供应商,等等这反过来意味着601对DB的调用。
使用FOR XML PATH将每个集合分组在一起。意味着更多的CPU密集型读取大量初始查询。
我想知道,首先,上述两种方法中的哪一种看起来会更好,其次,是否还有其他更好的方法我没有想到。问题在于两者都必须使用垃圾对象映射器(不能为此查询的结果集创建我自己的DAL映射过程)。
任何想法?
谢谢。
嗨,你的意思是自定义属性?我已经有了使用For XML Path的查询。我注意到,实时数据显示,查询将在大约两千条记录中平均3-5秒。这对我来说太慢了。我将如何映射自定义属性? – user676767