【发布时间】:2015-05-23 06:09:35
【问题描述】:
我是 Fluent NHibernate 的新手,到目前为止,我设法让我的映射工作,除了继承部分。有人可以帮我完成映射吗?我已经尽可能地简化了代码。
谢谢!
我的数据库:
CREATE TABLE [User] (
UserID INT NOT NULL IDENTITY(1,1),
Type CHAR(1) NOT NULL,
Email VARCHAR(255) NOT NULL,
PRIMARY KEY(UserID)
);
CREATE TABLE [Student] (
UserID INT NOT NULL,
Firstname VARCHAR(255) NOT NULL,
PRIMARY KEY(UserID),
FOREIGN KEY(UserID) REFERENCES [User](UserID)
);
CREATE TABLE [Company] (
UserID INT NOT NULL,
Name VARCHAR(255) NOT NULL,
PRIMARY KEY(UserID),
FOREIGN KEY(UserID) REFERENCES [User](UserID),
);
我的课:
public class User
{
public virtual int UserID { get; set; }
public virtual UserType Type { get; set; }
public virtual string Email { get; set; }
public User()
{
}
}
public class Student : User
{
public string Firstname { get; set; }
public string Lastname { get; set; }
public Student()
: base()
{
}
}
public class Company : User
{
public virtual string Name { get; set; }
public Company()
: base()
{
}
}
public enum UserType
{
STUDENT = 0,
COMPANY = 1
}
映射:
public class UserMap : ClassMap<User>
{
public UserMap()
{
Table("[User]");
Id(x => x.UserID);
Map(x => x.Type).CustomType<int>();
Map(x => x.Email);
}
}
public class CompanyMap : ClassMap<Company>
{
public CompanyMap()
{
Table("Company");
Id(x => x.UserID);
Map(x => x.Name);
}
}
public class StudentMap: ClassMap<Student>
{
public StudentMap()
{
Table("Student");
Id(x => x.UserID);
Map(x => x.Firstname);
Map(x => x.Lastname);
}
}
【问题讨论】:
标签: c# nhibernate fluent-nhibernate fluent fluent-nhibernate-mapping