Forgot to say that I'm using the BeforeMapClassHandler event to map my ids.
map.Id(x => {
x.Column("Id");
x.Generator(Generators.Sequence, ...);
});
I have many other mappings that works. Difference is that I'm not using
inheritance in any of them.
Have I missed anything? Are there any limitaitions with abstract base
classes deriving from generic ones etc?
Best Regards
On Wednesday, May 8, 2013 9:53:54 AM UTC+2, Drognan wrote:
>
> I'm trying to map the following class structure by code, but failing
> miserabley. I'm using Firebird as my database and NHibernante 3.3.1.400.
>
> public abstract Behaviour : Entity<Long>
> {
> public abstract Product Process(Product product);
> }
>
> public class DiscountBehaviour : Behaviour
> {
> public virtual float Discount{ get; set; }
> public override Product Process(Product product) { /* some logic*/ }
> }
>
> public class NewPriceBehaviour : Behaviour
> {
> public virtual decimal NewPrice { get; set; }
> public override Product Process(Product product) { /* some logic*/ }
> }
>
>
> This is my mapping:
>
> public class BehaviourMap : ClassMapping<Behaviour>
> {
> public BehaviourMap()
> {
> Id(x => x.Id);
> }
> }
>
> public class DiscountBehaviourMap :
> JoinedSubclassMapping<DiscountBehaviour>
> {
> public DiscountBehaviourMap()
> {
> Key(k => k.Column("`BehaviourId`"));
> Property(x => x.Discount);
> }
> }
>
> public class NewPriceBehaviourMap :
> JoinedSubclassMapping<NewPriceBehaviour>
> {
> public NewPriceBehaviourMap()
> {
> Key(k => k.Column("`BehaviourId`"));
> Property(x => x.NewPrice);
> }
> }
>
> My database script looks like this:
>
> CREATE TABLE ""Behaviour"" (
> ""Id"" ""Key"" NOT NULL,
> CONSTRAINT ""PkBehaviour"" PRIMARY KEY (""Id""));
>
> CREATE TABLE ""DiscountPricingBehaviour"" (
> ""Id"" ""Key"" NOT NULL,
> ""BehaviourId"" ""Key"" NOT NULL,
> ""Discount"" FLOAT NOT NULL,
> CONSTRAINT ""PkDiscountPricingBehaviour"" PRIMARY KEY (""Id""),
> CONSTRAINT ""FkDPBehaviourBehaviour""
> FOREIGN KEY (""BehaviourId"")
> REFERENCES ""Behaviour"" (""Id""));
>
> When trying to commit this transaction I get the following error in
> Firebird:
>
> validation error for column Id, value "*** null ***"
>
> So my question is really... what am I missing here? Is there any
> documentation that might lead me in the right direction, or should I look
> in the code?
>
> Best Regards
>
>
--
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?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.