using NHibernate.Mapping.ByCode; using NHibernate.Mapping.ByCode.Conformist; using System; using System.Collections.Generic; namespace Tanshu.Accounts.Entities { public class Tax { public virtual Guid TaxID { get; set; } public virtual string Name { get; set; } public virtual decimal Rate { get; set; } public virtual IList ServiceTaxProducts { get; set; } public virtual IList VatProducts { get; set; } } public class TaxMap : ClassMapping { public TaxMap() { Table("Taxes"); Schema("dbo"); Lazy(true); Id(x => x.TaxID, map => map.Generator(Generators.GuidComb)); Property(x => x.Name, map => { map.NotNullable(true); map.Unique(true); }); Property(x => x.Rate, map => map.NotNullable(true)); Bag(x => x.ServiceTaxProducts, colmap => { colmap.Key(x => x.Column("ServiceTaxID")); colmap.Inverse(true); }, map => { map.OneToMany(); }); Bag(x => x.VatProducts, colmap => { colmap.Key(x => x.Column("VatID")); colmap.Inverse(true); }, map => { map.OneToMany(); }); } } }