I'm working with NHibernate for the first time. I have a table per class hierarchy (abstract super class). When I try to save a subclass (student) I get the error message:
[SqlException (0x80131904): Invalid column name 'Firstname' etc...]
My HBM file:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="xx"
namespace="xx.Models">
<class name="User" table="[User]" lazy="false">
<id name="UserID" column="UserID">
<generator class="native" />
</id>
<discriminator column="Type" type="String"/>
<property name="Email" column="Email" />
<subclass name="Student" discriminator-value="0">
<property name="Firstname" column="Firstname" />
</subclass>
<subclass name="Company" discriminator-value="1">
<property name="Name" column="Name" />
</subclass>
</class>
</hibernate-mapping>
SQL Code:
CREATE TABLE [dbo].[User] (
UserID INT NOT NULL IDENTITY(1,1),
Type CHAR(1) NOT NULL,
Email VARCHAR(255) NOT NULL,
PRIMARY KEY(UserID)
);
CREATE TABLE [dbo].[Student] (
UserID INT NOT NULL,
Firstname VARCHAR(255) NOT NULL,
PRIMARY KEY(UserID),
FOREIGN KEY(UserID) REFERENCES [User](UserID)
);
CREATE TABLE [dbo].[Company] (
UserID INT NOT NULL,
Name VARCHAR(255) NOT NULL,
PRIMARY KEY(UserID),
FOREIGN KEY(UserID) REFERENCES [User](UserID),
);
I am probably missing a configuration setting, the database is MS SQL, can anyone help me out?