using System; using System.Linq.Expressions; using InABox.Core; namespace Comal.Classes { public interface IEmployeeRequiredQualification { EmployeeLink Employee { get; set; } QualificationLink Qualification { get; set; } } public class EmployeeRequiredQualificationCrossGenerator : AutoEntityCrossGenerator { public override Expression> LeftProperty => x => x.EmployeeLink.ID; public override Expression> LeftMapping => x => x.Employee.ID; public override Expression> LeftLink => x => x.RoleLink.ID; public override Expression> RightProperty => x => x.Qualification.ID; public override Expression> RightMapping => x => x.Qualification.ID; public override Expression> RightLink => x => x.Role.ID; public override bool Distinct => true; public override Column[] IDColumns => new Column[] { new Column(x => x.Employee.ID), new Column(x => x.Qualification.ID) }; } [UserTracking(typeof(Employee))] [AutoEntity(typeof(EmployeeRequiredQualificationCrossGenerator))] public class EmployeeRequiredQualification : Entity, IRemotable, IPersistent, IEmployeeRequiredQualification, ILicense { public EmployeeLink Employee { get; set; } public QualificationLink Qualification { get; set; } } }