I've searched everywhere and can't find an example that fits this. I
really could use some help I keep getting the error:
"Could not format discriminator value to SQL string of entity..."
I have a User class with an enum property, UserRole, that I want to be
my discriminator.
public abstract class User
{
public string Name;
public virtual UserRole Role { get; protected set; }
}
I then have a subclass for each role:
public class Teacher : User
{
public Teacher()
{
Role = UserRole.Teacher;
}
}
I don't have any property on Teacher referring to Role because I don't
need it. This is different from what I've seen in other examples.
Here's how I tried to map it on my User mapping:
mapping.DiscriminateSubClassesOnColumn<UserRole>("Role",
UserRole.Teacher)
.SubClass<Teacher>(t =>
{
t.Map(x => x.Role);
}
);
Here's my mapping output:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-
access="">
<class name="S2sol.Rpo.Core.Domain.User.User, S2sol.Rpo.Core,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="Users"
xmlns="urn:nhibernate-mapping-2.2" discriminator-value="Teacher">
<id name="Id" type="Int32" unsaved-value="0" column="Id">
<generator class="identity" />
</id>
<discriminator column="Role"
type="S2sol.Rpo.Core.Domain.User.UserRole, S2sol.Rpo.Core,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<property name="Email" type="String" unique-
key="IX_Unique_EmailAddress">
<column name="Email" />
</property>
<property name="Role"
type="FluentNHibernate.Mapping.GenericEnumMapper`1
[[S2sol.Rpo.Core.Domain.User.UserRole, S2sol.Rpo.Core,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]],
FluentNHibernate, Version=0.1.0.0, Culture=neutral,
PublicKeyToken=8aa435e3cb308880">
<column name="Role" />
</property>
<property name="Name" type="String">
<column name="Name" />
</property>
<subclass name="S2sol.Rpo.Core.Domain.User.Teacher,
S2sol.Rpo.Core, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null">
<property name="Role" type="S2sol.Rpo.Core.Domain.User.UserRole,
S2sol.Rpo.Core, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null">
<column name="Role" />
</property>
</subclass>
</class>
</hibernate-mapping>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---