Commits on May 24, 2010
  1. Updated versions to 1.1

    jagregory committed May 24, 2010
Commits on May 23, 2010
  1. Fixed rakefile packaging

    jagregory committed May 23, 2010
Commits on May 21, 2010
  1. Added no-proxy lazy support

    Updated the References and HasOne methods to include support for
    no-proxy lazy loading. This is done through an overload with a Laziness
    parameter, to avoid breaking changes.
    The Laziness class can also be instantiated by the user with their own
    value; this will be handy for if NHibernate adds any more values to this
    enumerable before we can catch up.
    Fixes #183
    jagregory committed May 21, 2010
Commits on May 20, 2010
  1. Fix for nested-component column prefixes

    Column prefixes weren't being applied to nested components due to the
    hacky way they (prefixes) were implemented. I've now removed all the
    component prefixing from the automapper and updated the
    ColumnPrefixVisitor to work on all components rather than just
    Fixes #180
    jagregory committed May 20, 2010
Commits on May 19, 2010
  1. Obsoleted ImportType in automapping overrides

    This never worked. Depreciating the method to stop people expecting it
    to work.
    jagregory committed May 19, 2010
Commits on May 17, 2010
  1. Fixed overridden discriminator being ignored

    When using automapping, if you specified a discriminator in an override
    it was ignored due to the SubclassStrategy taking precedence. I've
    removed SubclassStrategy entirely in favour of using just
    This is a breaking change, but should be easy for people to fix up.
    jagregory committed May 17, 2010
Commits on May 16, 2010
  1. Fixed project file

    jagregory committed May 16, 2010
  2. Added missing entity-name support

    Some places were still missing entity-name support. The only remaining
    place is index-many-to-many, which is currently inaccessible through the
    fluent interface. This will be rectified post-1.1.
    Fixes #176
    jagregory committed May 16, 2010
  3. Added better Member equality implementation

    Was using MetadataToken for equality purposes, but apparently it's only
    unique within modules, so you have to include module in your
    jagregory committed May 16, 2010
  4. Fixed KeyReference and KeyProperty ordering

    When using mixed KeyReference and KeyProperty's in a CompositeId
    mapping, the order that you called them in wasn't being respected.
    This has needed a refactor of the compositeId model, to store those two
    mappings in a single collection to respect the order.
    Fixes #163
    jagregory committed May 16, 2010
  5. Disabled dictionary automapping

    Dictionaries haven't ever worked in the automapper, but they're always
    attempted. I've explicitly disabled them for this release, we'll
    implement support properly for the next release.
    Fixes #151
    jagregory committed May 16, 2010
  6. Multi-columns for KeyReferences in CompositeIds

    Small breaking change. The parameter order for KeyReferences has changed
    if you were using the Action overload.
    Fixes #154
    jagregory committed May 16, 2010
  7. Got automapper setting subclass types

    Fixes #161
    jagregory committed May 16, 2010
  8. Can ignore intermediary subclasses in automappings

    You can now ignore classes that are in the centre of an inheritance
    hierarchy using the automapper. Previously if you did this, the
    automapper couldn't find the link between the child and parent (because
    the child's immediate parent wasn't being mapped).
    Due to this change, you can just make the intermediary class abstract
    and it will be ignored automatically and the hierarchy will continue to
    function; otherwise, you can use the explicit IgnoreBase<T> method to
    ignore non-abstract classes.
    Fixes #128
    jagregory committed May 16, 2010
  9. Fixed issue whereby an inherited autoproperty with private setter was…

    … not correctly mapped with access=backfield.
    This was due to a bug in the logic for determining whether a member is an autoproperty. It incorrectly assumed that an auto property had to have an accessible set method, which is not the case if the autoproperty was declared on a base type with a private setter, but discovered when reflecting on a derived type.
    paulbatum committed May 16, 2010
Commits on May 15, 2010
  1. Fixed multiple instance of same ComponentMap bug

    A setup satisfying the following:
      * An entity with two components of the same type, each with it's own
      * A ComponentMap for the above component type, with explicit columns
        being used
    Would cause columns to be mapped with both prefixes. This was due to
    effectively the same instance of component being assigned to each
    property. Without the explicit columns, default ones are used which
    aren't shared between the instances; however, with the prefixes both
    components shared a column instance. When the prefix visitor was applied
    to the shared column, it received both prefxies.
    I've implemented deep cloning using binary serialization to remedy this.
    I was against using this method previously because I think it's hacky,
    but it seems like the only acceptable solution besides hand-rolling a
    deep copy mechanism (which I'm not doing).
    Fixes #173
    jagregory committed May 15, 2010
  2. Added entity-name support to collections

    Fixes #159
    jagregory committed May 15, 2010
  3. Added meta-type support to any mappings

    Fixes #152
    jagregory committed May 15, 2010
  4. Added docs to ReadOnlyProperty automapping config

    Also added the functionality to the other mappers, for setting the
    access strategy.
    jagregory committed May 15, 2010
  5. Added nested-composite-element support

    Fixes #147
    jagregory committed May 15, 2010
  6. Read-only property collection automapping support

    Automapping can now automap collections that're exposed through a
    read-only property (or private setter autoproperty), optionally as an
    An additional automapping configuration option has been added,
    GetAccessStrategyForReadOnlyProperty, which allows the user to customise
    how a read-only property is accessed. By default, read-only properties
    with a backing field are mapped as nosetter.camelcase, while read-only
    autoproperties are mapped as backfield.
    Fixes #145
    jagregory committed May 15, 2010
  7. Updated albacore zip task to fix zipping issues

    Included an updated zip task for albacore that allows glob-based
    exclusions, which should help with the excluding-incorrect-files bug.
    jagregory committed May 15, 2010
Commits on May 14, 2010
  1. Stopgap fix for zip task

    Zip task was excluding filenames that matched the directory regex's. Need to fix the task properly, but this'll do for now.
    jagregory committed May 14, 2010
  2. Automapping overrides support joins

    Automapping overrides didn't support using joins (although you could
    actually call the Join method, it didn't work), but they do now. The
    AutoMapping clone method was missing a copy for the join mapping, simple
    as that.
    Fixes #162
    jagregory committed May 14, 2010
  3. Support m2o-o2m self-referential relationships

    The automapper now supports bi-directional many-to-one one-to-many
    self-referential relationships. These are typically the tree structure
    style classes, where class A has a Parent property of A, and a Children
    collection of A.
    To properly implement this fix, the work for #142 had to be done too.
    This was to improve the way column names are generated for
    bi-directional relationships, by making sure both sides share the same
    key columns.
    Fixes #115 and #142
    jagregory committed May 14, 2010
  4. Conventions for element and composite-elements

    HasMany and HasManyToMany conventions weren't being applied to
    collections using an element or a composite-element. I've updated the
    ForeignKeyConvention to implement the higher-level
    ICollectionConvention for these situations.
    Fixes #157
    jagregory committed May 14, 2010
Commits on May 13, 2010
  1. Removed IEntityPersister constraint from Persister

    The Persister<T>() method on collections (conventions and the FI) were
    incorrectly restricting types to IEntityPersister implementors;
    collections should implement ICollectionPersister, but I've just removed
    the constraint all together.
    Fixes #167
    jagregory committed May 13, 2010
  2. Fixed #156, ConventionBuilder not using criteria

    When the conventions were refactored to make the acceptance criteria
    optional, the ConventionBuilder based conventions weren't updated to
    include the new interfaces.
    jagregory committed May 13, 2010