NHibernate使用NHibernate.mapping.Attributes进行简单的一对多映射

NHibernate使用NHibernate.mapping.Attributes进行简单的一对多映射,nhibernate,Nhibernate,有谁能给我提供一个web链接,它可以非常清楚地描述基于属性的简单一对多映射 例如(一家公司只能有一个原产国,但一个国家有许多公司): class公司 { } 阶级国家 { IList项目; } 对于您的示例类,使用袋子进行无序收集: using Map = NHibernate.Mapping.Attributes; [Map.Class( 0, Table = "country", NameType=typeof(Country) )] public class Country {

有谁能给我提供一个web链接,它可以非常清楚地描述基于属性的简单一对多映射

例如(一家公司只能有一个原产国,但一个国家有许多公司):

class公司
{
}
阶级国家
{
IList项目;
}

对于您的示例类,使用袋子进行无序收集:

using Map = NHibernate.Mapping.Attributes;

[Map.Class( 0, Table = "country", NameType=typeof(Country) )]
public class Country
{
    [Map.Id( 1, Name = "Id" )]
    [Map.Generator( 2, Class = "identity" )]
    public virtual int Id { get; set; }
    [Map.Property]
    public virtual string Name { get; set; }
    [Map.Bag( 0, Table = "country_company" )]
    [Map.Key( 1, Column = "countryid" )]
    [Map.OneToMany( 2, ClassType = typeof( Company ) )]
    public virtual IList<Company> Items { get; set; } 
}

[Map.Class( 0, Table = "country_company", NameType = typeof( Company ) )]
public class Company
{
    [Map.Id( 1, Name = "Id" )]
    [Map.Generator( 2, Class = "identity" )]
    public virtual Guid Id { get; set; }
    [Map.Property]
    public virtual string Name { get; set; }
}
使用Map=NHibernate.Mapping.Attributes;
[Map.Class(0,Table=“country”,NameType=typeof(country))]
公营国家
{
[Map.Id(1,Name=“Id”)]
[Map.Generator(2,Class=“identity”)]
公共虚拟整数Id{get;set;}
[地图.物业]
公共虚拟字符串名称{get;set;}
[地图袋(0,Table=“国家/地区公司”)]
[Map.Key(1,Column=“countryid”)]
[Map.OneToMany(2,ClassType=typeof(Company))]
公共虚拟IList项{get;set;}
}
[Map.Class(0,Table=“country\u company”,NameType=typeof(company))]
公营公司
{
[Map.Id(1,Name=“Id”)]
[Map.Generator(2,Class=“identity”)]
公共虚拟Guid Id{get;set;}
[地图.物业]
公共虚拟字符串名称{get;set;}
}
生成以下hbm.xml文件:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
    <class name="nh.Country, nh" table="country">
        <id name="Id">
            <generator class="identity" />
        </id>
        <property name="Name" />
        <bag name="Items" table="country_company">
            <key column="countryid" />
            <one-to-many class="nh.Company, nh" />
        </bag>
    </class>
    <class name="nh.Company, nh" table="country_company">
        <id name="Id">
            <generator class="identity" />
        </id>
        <property name="Name" />
    </class>
</hibernate-mapping>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
    <class name="nh.Country, nh" table="country">
        <id name="Id">
            <generator class="identity" />
        </id>
        <property name="Name" />
        <bag name="Items" table="country_company">
            <key column="countryid" />
            <one-to-many class="nh.Company, nh" />
        </bag>
    </class>
    <class name="nh.Company, nh" table="country_company">
        <id name="Id">
            <generator class="identity" />
        </id>
        <property name="Name" />
    </class>
</hibernate-mapping>