我使用Fluent Nhibernate作为我的C#应用程序,我有一个非常基本的问题。 我想知道当我们有多个主键时,NHibernate映射类应该是什么样子。
这是一个示例,展示了我如何实现映射和其他模型类:
CREATE TABLE Students(
id INT NOT NULL,
name VARCHAR (20) NOT NULL,
age INT NOT NULL,
PRIMARY KEY (id)
);
public class Students
{
public virtual int ID { get; set; }
public virtual string Name { get; set; }
public virtual int Age { get; set; }
}
public class StudentMap : ClassMap<Students>
{
public AchivementMasterMap()
{
Id(x => x.ID).Column("id");
Map(x => x.Name).Column("name");
Map(x => x.Age).Column("age");
Table("Students");
}
}
假设我们在Student表上有两个主键,如此
CREATE TABLE Students(
id INT NOT NULL,
name VARCHAR (20) NOT NULL,
age INT NOT NULL,
PRIMARY KEY (id,name)
);
那么如何为上表编写映射类?
答案 0 :(得分:1)
您没有2个主键,您似乎拥有复合主键。我想你可以使用Fluent NHibernate CompositeId - 就像这样:
public class StudentMap : ClassMap<Students>
{
public StudentMap()
{
CompositeId()
.KeyProperty(x => x.name, "id")
.KeyProperty(x => x.name, "name");
...