Old forum URL: forums.lhotka.net/forums/t/10637.aspx

jh72i posted on Thursday, August 25, 2011

Folks, I know this is going back in time for most of you but out team has found that the code to insert objects into the PositionMap seriously degrades performance in large collections.

I have to admit that I don't even remember what the PositionMap achieves - was it somehow related to Linq? But, more importantly, I took a look at the latest Csla code and it has been removed completely but I cannot find any direct reference to its removal.

Can anybody tell me: 1. what exactly it's function was and 2. how is that being achieved in the latest versions.

Basically, we cannot upgrade right now but I definitely want to see this performance issues resolved.

I know this post is a lazy approach and apolgise for that. I will do a full investigation one i have a tiny window of time.

Thanks you

JonnyBee replied on Thursday, August 25, 2011

1. It's function was to support the IQueryable<T> and IOrderedQueryable<T>(Linq interfaces) and builtin indexes/filtering capailities. Csla. 3.6 to 3.8  supported Linq ExpressionTrees and indexing.

2. Csla 4 no longer supports  IQueryable<T> and IOrderedQueryable<T> nor indexing or expression trees in it's list objects.

    List object are now either BindinList or ObservableList deratives and you use Linq2Object on these lists in your code.
    LinqObservableCollection is the replacement and is returned when you call ToSyncList() on a linq expression.

    If you need to use expression trees/indexing you must look at other 3rd party components like I4O and others.

jh72i replied on Friday, August 26, 2011

Great. Thanks so much for taking the time to clarify all this for me.

Copyright (c) Marimer LLC