I think you are mixing convention and explicit mapping. Your first example
should be more like:
var mapper = new ConventionModelMapper();
mapper.IsVersion((m, d) => m.Name == "Version");
mapper.BeforeMapProperty((model, member, propertyCustomizer) =>
{
if (this.IsVersion(member.LocalMember, true) == true)
{
propertyCustomizer.Generated(PropertyGeneration.Never);
}
...
});
var types = ...;
var mapping = mapper.CompileMappingFor(types);
var cfg = ...;
cfg.AddMapping(mapping);
Can you try this?
RP
On Thursday, April 17, 2014 6:10:48 PM UTC+1, Mouhong Lin wrote:
>
> Hi guys,
>
> I use *NHibernate 3.3.1.4000* See the following code:
>
> var mapper = new ConventionModelMapper();
>
> mapper.IsVersion((m, d) => m.Name == "Version");
>
> mapper.Class<Campaign>(x =>
> {
> x.Id(c => c.Id, m => m.Generator(Generators.Assigned));
>
> x.Property(c => c.Title);
> x.Property(c => c.Price);
> });
>
>
> config.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
>
> With this configuration. The Campaign.Version will not worked as a Version
> property. The value will never increased.
> But if I use explicit mapping like this:
>
> var mapper = new ConventionModelMapper();
>
> mapper.Class<Campaign>(x =>
> {
> x.Id(c => c.Id, m => m.Generator(Generators.Assigned));
>
> x.Property(c => c.Title);
> x.Property(c => c.Price);
>
> x.Version(c => c.Version, m =>
> m.Generated(VersionGeneration.Never));
> });
>
>
> config.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
>
>
> It works!! But *why the ConventionModelMapper doesn't work? How can I get
> the convention mapper work? *Thanks
>
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.