target.HasAttribute("not-null") always returns false both in Accept
and Apply, I created a ugly workaround by setting not-null explicitly.I'll try to create a small sample (showing the odd behavior) in a couple of hours. On Mar 25, 4:27 pm, James Gregory <[email protected]> wrote: > Hmm. Update your Accept method to do this: > return !target.HasAttribute("not-null"); > > That means it'll only apply it to any classes that haven't already had it > set. > > On Wed, Mar 25, 2009 at 3:13 PM, Anders <[email protected]> wrote: > > > Thanks for the hint in the right direction, however it seems like the > > convention is overriding my "manual" overrides. > > > public class NotNullPropertyConvention : IPropertyConvention > > { > > public bool Accept(IProperty target) > > { > > return true; > > } > > public void Apply(IProperty target) > > { > > target.Not.Nullable(); > > } > > } > > > .ConventionDiscovery.Add<NotNullPropertyConvention>() > > > .ForTypesThatDeriveFrom<Participant>(map => > > { > > map.Map(x => x.BarCode).Nullable(); > > map.Map(x => x.Country).Nullable(); > > map.Map(x => x.Title).Nullable(); > > }) > > > The Participant-table gets not null on all properties including > > BarCode, Country and Title. > > > This feels odd, or am I doing something strange? > > > On Mar 25, 3:52 pm, James Gregory <[email protected]> wrote: > > > You want a property > > > convention<http://wiki.fluentnhibernate.org/show/Conventions>to set > > > everything to null, then you have a few options for how to handle the > > > not null ones. > > > something like: > > > > public class NullPropertyConvention : IPropertyConvention > > > { > > > public bool Accept(IProperty target) > > > { > > > return true; > > > } > > > > public void Apply(IProperty target) > > > { > > > target.Nullable(); > > > } > > > > } > > > > then for the not nulls, you can either override them on the > > > AutoPersistenceModel< > >http://wiki.fluentnhibernate.org/show/AutoMappingAlteringEntities> > > > : > > > > .ForTypesThatDeriveFrom<MyEntity>(m => > > > m.Map(x => x.MyProperty) > > > .Not.Nullable()); > > > > or you can use an automapping > > > override<http://wiki.fluentnhibernate.org/show/AutoMappingOverrides> > > > : > > > > public class PersonMappingOverride : IAutoMappingOverride<Person> > > > { > > > public void Override(AutoMap<Person> mapping) > > > { > > > mapping.Map(x => x.MyProperty) > > > .Not.Nullable(); > > > } > > > > } > > > On Wed, Mar 25, 2009 at 2:33 PM, Anders <[email protected]> wrote: > > > > > Hi, > > > > > I want almost all of my properties to be "non-null", and instead > > > > override some specific properties that can be null. How do I do this > > > > using AutoPersistenceModel? > > > > > Thanks --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en -~----------~----~----~----~------~----~------~--~---
