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