public EmployeeTalentMap(Concrete.DataRepository repo) : base(repo, x => x.EmployeeTalents) { Members.Add(x => x.Employee) .WithColumn(x => x.EmployeeId, col => { col.OnWriteRecord(obj => { return(obj.Employee == null ? null : obj.Employee.Id); }); }) .OnComplete((rec, obj) => { obj.Employee = Repository.FindNow <Employee>(x => x.Id == rec["EmployeeId"]); }) .SetDependencyMode(MemberDependencyMode.Parent); Members.Add(x => x.Talent) .WithColumn(x => x.TalentId, col => { col.OnWriteRecord(obj => { return(obj.Talent == null ? null : obj.Talent.Id); }); }) .OnComplete((rec, obj) => { obj.Talent = Repository.FindNow <Talent>(x => x.Id == rec["TalentId"]); }) .SetDependencyMode(MemberDependencyMode.Parent); VersionColumn.SetName(x => x.RowVersion); }
public RegionMap(Concrete.DataRepository repo) : base(repo, x => x.Regions) { Members.Add(x => x.Parent) .WithColumn(x => x.ParentId, col => { col.OnWriteRecord(obj => { return(obj.Parent == null ? null : obj.Parent.Id); }); }) .OnComplete((rec, obj) => { obj.Parent = Repository.FindNow <Region>(x => x.Id == rec["ParentId"]); }) .SetDependencyMode(MemberDependencyMode.Parent); Members.Add(x => x.Childs) .OnComplete((rec, obj) => { obj.Childs.Clear(); obj.Childs.AddRange(Repository.Where <Region>(x => x.ParentId == obj.Id).ToList()); }) .SetDependencyMode(MemberDependencyMode.Child); Members.Add(x => x.Countries) .OnComplete((rec, obj) => { obj.Countries.Clear(); obj.Countries.AddRange(Repository.Where <Country>(x => x.RegionId == obj.Id).ToList()); }) .SetDependencyMode(MemberDependencyMode.Child); VersionColumn.SetName(x => x.RowVersion); }
public EmployeeMap(Concrete.DataRepository repo) : base(repo, x => x.Employees) { // This is a simple example of a multipart property (multipart ones cannot be lazy) Members.Add(x => x.Name) .WithColumn(x => x.FirstName, col => { col.SetElementName(x => x.Name.First); }) .WithColumn(x => x.LastName, col => { col.SetElementName(x => x.Name.Last); }); Members.Add(x => x.Manager) .WithColumn(x => x.ManagerId, col => { col.OnWriteRecord(obj => { return(obj.Manager == null ? null : obj.Manager.Id); }); }) .OnComplete((rec, obj) => { obj.Manager = Repository.FindNow <Employee>(x => x.Id == rec["ManagerId"]); }) .SetDependencyMode(MemberDependencyMode.Parent); Members.Add(x => x.Country) .WithColumn(x => x.CountryId, col => { col.OnWriteRecord(obj => { return(obj.Country == null ? null : obj.Country.Id); }); }) .OnComplete((rec, obj) => { obj.Country = Repository.FindNow <Country>(x => x.Id == rec["CountryId"]); }) .SetDependencyMode(MemberDependencyMode.Parent); Members.Add(x => x.Employees) .OnComplete((rec, obj) => { obj.Employees.Clear(); obj.Employees.AddRange(Repository.Where <Employee>(x => x.ManagerId == obj.Id).ToList()); }) .SetDependencyMode(MemberDependencyMode.Child); Members.Add(x => x.EmployeeTalents) .OnComplete((rec, obj) => { obj.EmployeeTalents.Clear(); obj.EmployeeTalents.AddRange(Repository.Where <EmployeeTalent>(x => x.EmployeeId == obj.Id).ToList()); }) .SetDependencyMode(MemberDependencyMode.Child); VersionColumn.SetName(x => x.RowVersion); }
public TalentMap(Concrete.DataRepository repo) : base(repo, x => x.Talents) { Members.Add(x => x.Employees) .OnComplete((rec, obj) => { obj.Employees.Clear(); obj.Employees.AddRange( Repository .Where <Employee>(x => x.Emp.Id == x.Temp.EmployeeId) .MasterAlias(x => x.Emp) .From(x => x(Repository.Where <EmployeeTalent>(y => y.TalentId == obj.Id)) .As(x.Temp)) .ToList()); }) .SetDependencyMode(MemberDependencyMode.Parent); VersionColumn.SetName(x => x.RowVersion); }