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
-~----------~----~----~----~------~----~------~--~---

Reply via email to