如何-简单的Nhibernate连接
我如何使用hbm或Fluence来完成这个简单的连接,这样我就有了这样一个类如何-简单的Nhibernate连接,nhibernate,Nhibernate,我如何使用hbm或Fluence来完成这个简单的连接,这样我就有了这样一个类 public class Pet { public Pet() {} public virtual int PetId { get; set; } public virtual int PetTypeId { get; set; } public virtual string Name { get; set; } } CREATE TABLE [dbo].[test_PetTypes
public class Pet
{
public Pet() {}
public virtual int PetId { get; set; }
public virtual int PetTypeId { get; set; }
public virtual string Name { get; set; }
}
CREATE TABLE [dbo].[test_PetTypes](
[PetTypeId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nchar](10) NOT NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[test_Pet](
[PetId] [int] IDENTITY(1,1) NOT NULL,
[PetType] [int] NOT NULL
) ON [PRIMARY]
SELECT dbo.test_Pet.*, dbo.test_PetTypes.Name
FROM dbo.test_Pet INNER JOIN
dbo.test_PetTypes ON dbo.test_Pet.PetType = dbo.test_PetTypes.PetTypeId
这种情况需要一个从
test\u PetType
到test\u Pet
的一对多映射集。您不应该在类中需要ID字段,除非您特别想手动操作它们(NHibernate应该为您处理)。Ayende(NHibernate的贡献者之一)有一篇很棒的帖子
我认为你的HBM(改编自Ayende的帖子)的基本要点应该与此类似:
<set name="Pets" table="test_PetTypes">
<key column="PetId"/>
<one-to-many class="Pet"/>
</set>
我目前没有设备来测试这个,所以我无法验证这个场景。例如,您可以不使用
标记,而是在更高级别添加映射