Commits on Nov 13, 2010
  1. FIX: Unable to change access strategy of an automapped read-only many…

    jagregory committed Nov 13, 2010
    …-to-one with conventions
Commits on Nov 8, 2010
  1. Updated version to 2.0

    jagregory committed Nov 8, 2010
Commits on Oct 17, 2010
Commits on Oct 16, 2010
  1. Added a mechanism for adding a custom IComponentMappingProvider imple…

    paulbatum committed Oct 10, 2010
    …mentation to a class mapping. Requested by Brandon Behrens.
  2. Updated the rake task for installing mspec to default to version 5.0 …

    paulbatum committed Oct 10, 2010
    …and VS2010. Modified the version parameter to be resharper_version and added a vs_version for potential VS2008 users.
  3. Normalised line endings.

    paulbatum committed Oct 10, 2010
Commits on Sep 26, 2010
Commits on Sep 22, 2010
  1. Upgraded solution to vs2010

    jagregory committed Sep 22, 2010
  2. Fixed type inference issue

    jagregory committed Sep 22, 2010
  3. Added diagnostic logging

    jagregory committed Sep 22, 2010
    Logging enabled for fluent mapping discovery, convention discovery, and initial automapping behaviour (scanning, exclusions, and candidates).
    To use, modify your Fluent.Configuration code:
          .Diagnostics(dia =>
  4. Upgraded mspec

    unknown authored and jagregory committed Sep 18, 2010
Commits on Aug 30, 2010
  1. Merged <map> redesign (BREAKING CHANGES)

    jagregory committed Aug 30, 2010
    Squashed commit of the following:
    commit 69550cd6ccdf491e92315a5051a2c8d60a185a03
    Author: James Gregory <>
    Date:   Sun Aug 29 19:12:48 2010 +0100
        Renamed map methods to be more logically correct, rather than matching
        the NH naming scheme (which doesn't make sense with <map>s all that much
        Key -> ForeignKey
        Index -> DictionaryKey
        Element -> DictionaryValue
        OneToMany and ManyToMany have remained unchanged for now.
    commit 53955d30b0500dbfc216312b4e47ffe15598330c
    Author: James Gregory <>
    Date:   Sun Aug 29 19:06:02 2010 +0100
        Added an overload for collections derived from PersistentGenericMap
    commit 6d1796a4a7a9f080f935bdd44b366f68d28a8662
    Author: James Gregory <>
    Date:   Sun Aug 29 17:12:57 2010 +0100
        Created HasMany(IDictionary) with default types
    commit 11a34d5b5b0b6875a263cdf5591a00f1b17b297b
    Author: James Gregory <>
    Date:   Wed Aug 4 22:25:47 2010 +0100
        Removed AsMap from the regular ToManyBase
    commit a17bd398220c3ecaa156547e01dd6af15f038e49
    Author: James Gregory <>
    Date:   Tue Aug 3 23:56:29 2010 +0100
        Added missing methods/attributes to MapBuilder
        MapBuilder is now complete as far as features go.
    commit 3ff88e6f6fceeda27f923272dec489c7a7ef4a69
    Author: James Gregory <>
    Date:   Tue Aug 3 23:14:21 2010 +0100
        Added missing methods to many-to-many builder
    commit 90574368a0da21ba72ffce72f3de44dff6f0ed7e
    Author: James Gregory <>
    Date:   Tue Aug 3 23:00:35 2010 +0100
        Added one-to-many builder
    commit 6d74d43e1ca9562b0d5513c1b6e8ad37f5cf06bf
    Author: James Gregory <>
    Date:   Tue Aug 3 22:51:39 2010 +0100
        Added missing composite-index attributes
    commit 1595bfd6e5dc27f020ec5d4b6395fa2261f7f805
    Author: James Gregory <>
    Date:   Tue Aug 3 22:49:12 2010 +0100
        Upgraded CompositeElementPart to a builder
        The CompositeElementPart has been upgraded to a builder, using the new
        mapping-in instead of mapping-out style. Along the way ManyToOnePart,
        and PropertyPart had to be converted to builders too.
    commit af36875ae944b650c99a834b08b7115e571dc372
    Author: James Gregory <>
    Date:   Tue Aug 3 21:40:38 2010 +0100
        Added missing KeyBuilder attributes
    commit 856e6ebc6420a5260f0bf37b10ae41e63995abcd
    Author: James Gregory <>
    Date:   Tue Aug 3 21:38:05 2010 +0100
        Added missing IndexBuilder attributes
    commit 6b97c247c1a6a5290517158185041d4d4ebfc083
    Author: James Gregory <>
    Date:   Tue Aug 3 21:25:16 2010 +0100
        Added missing element attributes to ElementBuilder
    commit 34a35c62ed5231df3d8d890fc4f3a70c743217e1
    Author: James Gregory <>
    Date:   Tue Aug 3 00:30:00 2010 +0100
        Converted HasManyToMany to use MapBuilder
        The HasManyToMany dictionary based methods now use the MapBuilder too.
        Right now they're just effectively an alias until a conclusion is given
        for the whole many-to-many dictionary default issue.
        This commit effectively removes AsTernaryAssociation,
        AsSimpleAssociation, AsEntityMap, and AsMap, as they're no longer
        accessible from the dictionary HasMany chains.
    commit dbd45dd3db3b2cdb5d75b031eca4c896a49d8d6d
    Author: James Gregory <>
    Date:   Mon Aug 2 23:38:34 2010 +0100
        Entity map support + removed IndexManyToMany
        New map builder now supports entity/entity maps, thus completing the
        possible combinations of key/value types.
        Refactored IndexManyToManyMapping and IndexManyToMany into one class,
        with a IsManyToMany property; this simplifies switching between the two
        from within the method chain.
    commit 08a955ffd6b145d99b8cdf02e0028c02e0cb5cf6
    Author: James Gregory <>
    Date:   Mon Aug 2 20:40:51 2010 +0100
        Removed all those HasMany overloads
        Not needed any more as it just wasn't viable - defaults are now handled
        through the builder.
    commit 09b84814e2159a1ad523380147ec4cc5565b6d20
    Author: James Gregory <>
    Date:   Wed Jul 28 23:27:26 2010 +0100
        Got composite-index support working
        Only the basics, no attributes yet.
    commit fd545a5915d1f2f778d45947a7fec03271a0b6aa
    Author: James Gregory <>
    Date:   Wed Jul 28 22:37:53 2010 +0100
        Unified the builders into a single MapBuilder
        The default implementations (element, entity map, etc...) are decided
        programatically instead of using generic constraints. This actually
        gives us more power because we can do some proper checks against the
        types, instead on relying on the rather lackluster constraint system
        (for example: we can detect enums as element mappings).
        Also updated the majority of the tests that were relying on the AsMap
        method to initiate the <map>. This is a breaking change. The AsMap
        method is now not available for maps, and most of the time all the
        values should use reasonable defaults.
    commit f7a7dacdf445db84cca09e2b1b3820f92f79be38
    Author: James Gregory <>
    Date:   Wed Jul 28 00:37:11 2010 +0100
        Added composite-element support to new builders
        Renamed MapManyToManyBuilder to MapValueKeyBuilder as it's hard to
        distinguish between entity maps and composite-element maps (they're both
        classes). The renamed builder now has both routes on, making it a bit of
        a general case for anything with a value type as a key. This class might
        end up being even more generic, but we'll see (I'd like to try to avoid
        that if possible).
    commit 5a59385d2aaeb2507e939a4c6a65b465d7fd90cf
    Author: James Gregory <>
    Date:   Tue Jul 27 23:26:29 2010 +0100
        Added key and index modifiers to the MapManyToManyBuilder
        Still need to add a modifier for the many-to-many element itself,
        that'll come soon.
    commit 1ddc7668fa4aa04313a2b07f26875a3a79ae1bd7
    Author: James Gregory <>
    Date:   Tue Jul 27 20:36:34 2010 +0100
        Implemented a value-type/entity map builder
        Refactored the HasMany methods to include value type key'd dictionaries
        with values of entities. These are restricted in similar ways to the
        element maps by explicitly specifying the value type methods as
        These methods default to many-to-many collections even though they're
        created through HasMany. This is a bit confusing, but one-to-many really
        doesn't make much sense to me in this situation; it creates a schema
        that I can't see ever being useful. If this causes confusion we should
        change it...
    commit 762d9e1d6e55bebb9ea276ef203c76741e2cf096
    Author: James Gregory <>
    Date:   Mon Jul 26 21:44:47 2010 +0100
        Added huge swath of overloads for element maps
        The idea is to preemptively find out that the user is trying to map a
        dictionary of value types; unfortunately, the only way to do that is to
        have hundreds of overloads for all the value types. Generic constraints
        don't support restricting only to value types, and even if they did you
        can't have two methods with the same signature only differing by
        constraints :(
    commit b5e2cee812c704a9d7a7c15185e82f27076ff0dd
    Author: James Gregory <>
    Date:   Sun Jul 25 23:26:44 2010 +0100
        Got indexes working in Element Maps
        Default indexes are now created as part of the MapElementBuilder.
        Similar to ElementBuilder and ElementPart, IndexPart has now been
        replaced by IndexBuilder for the same reasons.
    commit faf4069644bda37e371a475af27579106dcc3c51
    Author: James Gregory <>
    Date:   Sun Jul 25 23:06:39 2010 +0100
        Removed ElementPart in favour of ElementBuilder
        ElementPart and ElementBuilder are doing the same job, except *Builder
        follows the "mapping in" principal over "mapping out". Removed
        ElementPart and updated usages to ElementBuilder.
    commit a0b87663ae7f5675661501479b23c1fcdd49c342
    Author: James Gregory <>
    Date:   Sun Jul 25 22:49:44 2010 +0100
        Key refactorings
        Started refactoring the Key support to be more complete in all cases.
        Now supplying a closure method to allow complete customisation of the
        Key, while also still providing the basic inline methods for specifying
        HasMany(x => x.Something)
        becomes ->
        HasMany(x => x.Something)
          .Key(k =>
        Bit more verbose, but keeps the primary interface cleaner.
    commit ebb0129ca155bef71026135ea8fc750309755a9a
    Author: James Gregory <>
    Date:   Sun Jul 25 18:48:45 2010 +0100
        Created KeyBuilder
    commit 1d2998b992bad90abc9c951062153cc0b00c8f46
    Author: James Gregory <>
    Date:   Sun Jul 25 18:40:36 2010 +0100
        Got keys working with MapElementBuilder
        Awaiting KeyBuilder for full customisation support
    commit 414d18a1df09882504a67dd7edc6af9998da7d05
    Author: James Gregory <>
    Date:   Sun Jul 25 18:30:42 2010 +0100
        Started refactoring the Map functionality
        The first step is to introduce more restrictive overloads to HasMany that
        have different return types based on their intent. Element maps are the
        first target, with overloads limited to value types.
        Created a MapElementBuilder, which ditches the baggage of ToManyBase and
        starts anew. So far creates the <map> and <element> correctly, still
        gotta support the <key> and <index>.
Commits on Aug 29, 2010
  1. Pulled last new overload of CustomType that includes a column prefix …

    erikojebo committed Aug 29, 2010
    …up to the IPropertyInstance interface
  2. Added overloads to PropertyInstance.CustomType that accepts a prefix …

    erikojebo committed Aug 29, 2010
    …for the generated column names, instead of the hard coded PropertyName_ prefix that was previously used.
Commits on Aug 22, 2010
  1. Adding CollectionTypeFactory mapping to the PersistenceConfiguration.…

    Tasteful authored and paulbatum committed Aug 8, 2010
    …cs on the same way as the ProxyFactoryFactory.
Commits on Aug 7, 2010
  1. Added a test to reproduce the issue resolved in the previous commit -…

    paulbatum committed Jul 25, 2010
    … The .Not operator wasn't working when used from within the HasManyConvention.
Commits on Jul 27, 2010
  1. Fixed natural-id/id/version output ordering bug

    jagregory committed Jul 27, 2010
    Reorganised the sorting structure a little bit to make it clearer what's
    happening. We could probably code-gen this from the schema if we really
Commits on Jul 23, 2010
  1. Fix for weird key column issue

    jagregory committed Jul 23, 2010
    1.1 introduced a regression where entities that are the target of
    multiple Reference mappings from the same source would end up with
    multiple key columns being defined based on the property names.
    The source of this was the RelationshipKeyPairingVisitor, which frankly
    I have no idea what it was trying to do. I think it might have something
    to do with composite keys and relationships, but the usage isn't very
    clear. For the time being I've removed this functionality.
Commits on Jul 18, 2010
  1. Moved the broken external component output specs to the spec project …

    paulbatum committed Jul 18, 2010
    …and fixed it to use mspec.
Commits on Jun 30, 2010
  1. Revert "Modified ReferenceComponentMapping to pass visitors through t…

    paulbatum committed Jun 30, 2010
    …o the underlying ExternalComponentMapping. Also modified ExternalComponentMapping to prevent it from running a visitor more than once."
    This reverts commit 35609a0.
Commits on Jun 27, 2010
  1. Fixed spec name

    paulbatum committed Jun 27, 2010
  2. Modified ReferenceComponentMapping to pass visitors through to the un…

    paulbatum committed Jun 27, 2010
    …derlying ExternalComponentMapping. Also modified ExternalComponentMapping to prevent it from running a visitor more than once.
    This combination of changes should allow conventions to be applied to members of a component that was mapped via ComponentMap.
Commits on Jun 19, 2010
  1. Added support for ChildWhere and ChildOrderBy on many-to-many mapping…

    paulbatum committed Jun 19, 2010
    …s to be set via conventions