using NHibernate.Mapping.ByCode; using NHibernate.Mapping.ByCode.Conformist; using System; using System.Collections.Generic; namespace Tanshu.Accounts.Entities { public class ProductGroup { public ProductGroup() { Products = new List(); } public virtual Guid ProductGroupID { get; set; } public virtual string Name { get; set; } public virtual decimal DiscountLimit { get; set; } public virtual bool IsModifierCompulsory { get; set; } public virtual bool IsActive { get; set; } public virtual int SortOrder { get; set; } public virtual string GroupType { get; set; } public virtual IList Products { get; set; } public virtual IList PrintLocations { get; set; } public virtual IList ProductGroupModifiers { get; set; } } public class ProductGroupMap : ClassMapping { public ProductGroupMap() { Table("ProductGroups"); Schema("dbo"); Lazy(true); Id(x => x.ProductGroupID, map => map.Generator(Generators.GuidComb)); Property(x => x.Name, map => { map.NotNullable(true); map.Unique(true); }); Property(x => x.IsActive, map => map.NotNullable(true)); Property(x => x.SortOrder, map => map.NotNullable(true)); Property(x => x.DiscountLimit, map => map.NotNullable(true)); Property(x => x.IsModifierCompulsory, map => map.NotNullable(true)); Property(x => x.GroupType, map => map.NotNullable(true)); Bag(x => x.PrintLocations, colmap => { colmap.Key(x => x.Column("ProductGroupID")); colmap.Inverse(true); }, map => { map.OneToMany(); }); Bag(x => x.ProductGroupModifiers, colmap => { colmap.Key(x => x.Column("ProductGroupID")); colmap.Inverse(true); }, map => { map.OneToMany(); }); Bag(x => x.Products, colmap => { colmap.Key(x => x.Column("ProductGroupID")); colmap.Inverse(true); }, map => { map.OneToMany(); }); } } }