Rockford Lhotka
    CTO at Magenic
    Author, speaker, software architect
    Creator of the CSLA .NET framework

About me
Contact me


Version 3.7.1 change log


This document is the change log for version 3.7.1 of CSLA .NET for Windows.


For a more complete list of changes, go to, select “all issues” and filter the status to “closed” and/or “checked in”.


Click here for a list of known issues with this version.


Release 3.7.1-090928:


Field Manager/PropertyInfo<T> (090911)

Add Type parameter to Create() methods so a PropertyInfo factory has access to the business object type that declares the property.


Pre-Release 3.7.1-090913:


Field Manager/PropertyInfo<T> (090911)

Add Csla.Core.IPropertyInfoFactory, which can be implemented to provide a new factory object to create PropertyInfo<T> instances.


Specify that your type should be used as a factory with the CslaPropertyInfoFactory config setting (provide assembly qualified type name) or by setting the Csla.Core.FieldManager.PropertyInfoFactory.Factory property to an instance of your factory object.


This is necessary to support the scenario where you implement a custom FieldData<T> subclass, and then a custom PropertyInfo<T> subclass, and you want to use the lambda expression overloads of RegisterProperty(). In that case, the RegisterProperty() implementation creates the instance of PropertyInfo<T> on your behalf, and this new factory scheme allows you to have it create your own subclass of PropertyInfo<T>.


FieldData (090910)

Mark the MarkClean() method as virtual so a subclass can more easily manage the dirty status.


CslaDataProvider (090826)

Fix bug where OnQueryFinished() overrides weren’t called correctly.


Pre-Release 3.7.1-090806:


No changes.


Pre-Release 3.7.1-090803:


FilteredBindingList/SortedBindingList (090728)

Fixed some synchronization bugs with these types, especially around adding new items to the bottom of a datagrid and then pressing ESC.


LINQ to CSLA (090723)

Resolution to certain generic mapping issues in the method mapper caused SelectMany to break... resolved so that SelectMany method mapping is handled similar to GroupJoin, which has same sort of issues with mapping a generic Expression to a similar generic Func.


LogicalExecutionLocation (090721)

Store LogicalExecutionLocation in LocalContext so it is safe on the server and in multi-threaded client scenarios.


Also change the data portal so LogicalExecutionLocation works with nested calls. To do this I changed SetContext and ClearContext to be instance methods so they can work with an _oldLocation field to handle the nesting.


Reflection\MethodCaller (090721)

Fix an issue where MethodCaller (and therefore the child data portal) was not properly handling array parameters. It should now be possible to pass arrays of values through the child data portal into the Child_XYZ methods.



(Updated 9/28/2009)