In XML it would like this:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                                   assembly="NHibernate.Test"
namespace="NHibernate.Test.NHSpecificTest.NH1234"
                                   default-access="property" auto-import="true" 
default-
cascade="none" default-lazy="false">
        <class xmlns="urn:nhibernate-mapping-2.2" discriminator-value="255"
name="ParentClass" table="Hierarchy">
                <id name="Id" type="Guid">
                        <column name="Id" />
                        <generator class="guid.comb" />
                </id>
                <discriminator type="Byte" >
                        <column name="TypeDiscriminator" 
unique-key="UQ_Type_Name" not-
null="true"/>
                </discriminator>
                <property name="Name" type="String">
                        <column name="Name" unique-key="UQ_Type_Name"/>
                </property>
                <subclass name="DerivedClass" discriminator-value="0">
                        <property name="ChildProperty" type="String">
                                <column name="ChildProperty"/>
                        </property>
                </subclass>
        </class>
</hibernate-mapping>

Please note discriminator element with column element specifying
unique-key.

For this model:

namespace NHibernate.Test.NHSpecificTest.NH1234
{
        public class ParentClass
        {
                public Guid Id { get; set; }
                public string Name { get; set; }
        }


        public class DerivedClass : ParentClass
        {
                public string ChildProperty { get; set; }
        }
}

And it gives this schema:

create table Hierarchy (
  Id UNIQUEIDENTIFIER not null,
   TypeDiscriminator TINYINT not null,
   Name NVARCHAR(255) null,
   ChildProperty NVARCHAR(255) null,
   primary key (Id),
  unique (TypeDiscriminator, Name)
)


Basically, I would like to have something unique within each type.



On 27 Sie, 11:59, James Gregory <[email protected]> wrote:
> Where are you trying to specify this unique key? How would you do it with
> xml?
>
> UniqueKey("discriminatorcolumn,anothercolumn")
>
> On Wed, Aug 26, 2009 at 6:00 PM, Artur Dorochowicz <
>
> [email protected]> wrote:
>
> > Hello,
>
> > I have this requirement to include a discriminator column in a unique
> > key. From NH mapping schema, I see that that can be done.
>
> > I know that FNH does not support such construct in its fluent
> > interface, but I was wondering, maybe there is some extension point or
> > a way to add attribute or literal xml to specify that. I couldn't find
> > any so I'm asking here for help.
>
> > I'm using manual mappings, so it's not automapping related.
>
> > Thanks
>
> > Artur
--~--~---------~--~----~------------~-------~--~----~
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