using NHibernate.Mapping.ByCode; using NHibernate.Mapping.ByCode.Conformist; using System; using System.Collections.Generic; using Tanshu.Accounts.Entities.Auth; namespace Tanshu.Accounts.Entities { public class Kot { public Kot() { Inventories = new List(); Printed = false; } public virtual Guid KotID { get; set; } public virtual Voucher Voucher { get; set; } protected int _code; public virtual int Code { get { return _code; } } public virtual FoodTable Table { get; set; } public virtual bool Printed { get; set; } public virtual DateTime Date { get; set; } public virtual User User { get; set; } public virtual IList Inventories { get; set; } } public class KotMap : ClassMapping { public KotMap() { Table("Kots"); Schema("dbo"); Lazy(true); SqlInsert(@"exec KotInsert ?,?,?,?,?"); Id(x => x.KotID, map => map.Generator(Generators.GuidComb)); Property(x => x.Code, map => { map.NotNullable(true); map.Unique(true); map.Generated(PropertyGeneration.Insert); map.Access(Accessor.NoSetter); }); Property(x => x.Printed, map => map.NotNullable(true)); Property(x => x.Date, map => { map.NotNullable(true); map.Generated(PropertyGeneration.Insert); }); ManyToOne(x => x.Voucher, map => { map.Column("VoucherID"); map.NotNullable(true); map.Cascade(Cascade.None); }); ManyToOne(x => x.Table, map => { map.Column("TableID"); map.NotNullable(true); map.Cascade(Cascade.None); }); ManyToOne(x => x.User, map => { map.Column("UserID"); map.NotNullable(true); map.Cascade(Cascade.None); }); Bag(x => x.Inventories, colmap => { colmap.Key(x => x.Column("KotID")); colmap.Inverse(true); colmap.OrderBy(x => x.SortOrder); }, map => { map.OneToMany(); }); } } }