private bool IsNullRelationshipAssignment(MappingEntity entity, EntityAssignment assignment) { if (this.mapping.IsRelationship(entity, assignment.Member)) { var cex = assignment.Expression as ConstantExpression; if (cex != null && cex.Value == null) { return(true); } } return(false); }
bool IsNullRelationshipAssignment(IEntityMapping entity, EntityAssignment assignment) { var mm = entity.Get(assignment.Member); if (mm != null && mm.IsRelationship) { var cex = assignment.Expression as ConstantExpression; if (cex != null && cex.Value == null) { return(true); } } return(false); }
public override EntityExpression IncludeMembers(EntityExpression entity, Func <MemberInfo, bool> fnIsIncluded) { var assignments = this.GetAssignments(entity.Expression).ToDictionary(ma => ma.Member.Name); bool anyAdded = false; foreach (var mi in this.mapping.GetMappedMembers(entity.Entity)) { EntityAssignment ea; bool okayToInclude = !assignments.TryGetValue(mi.Name, out ea) || IsNullRelationshipAssignment(entity.Entity, ea); if (okayToInclude && fnIsIncluded(mi)) { ea = new EntityAssignment(mi, this.GetMemberExpression(entity.Expression, entity.Entity, mi)); assignments[mi.Name] = ea; anyAdded = true; } } if (anyAdded) { return(new EntityExpression(entity.Entity, this.BuildEntityExpression(entity.Entity, assignments.Values.ToList()))); } return(entity); }
private bool IsNullRelationshipAssignment(MappingEntity entity, EntityAssignment assignment) { if (this.mapping.IsRelationship(entity, assignment.Member)) { var cex = assignment.Expression as ConstantExpression; if (cex != null && cex.Value == null) return true; } return false; }
public override EntityExpression IncludeMembers(EntityExpression entity, Func<MemberInfo, bool> fnIsIncluded) { var assignments = this.GetAssignments(entity.Expression).ToDictionary(ma => ma.Member.Name); bool anyAdded = false; foreach (var mi in this.mapping.GetMappedMembers(entity.Entity)) { EntityAssignment ea; bool okayToInclude = !assignments.TryGetValue(mi.Name, out ea) || IsNullRelationshipAssignment(entity.Entity, ea); if (okayToInclude && fnIsIncluded(mi)) { ea = new EntityAssignment(mi, this.GetMemberExpression(entity.Expression, entity.Entity, mi)); assignments[mi.Name] = ea; anyAdded = true; } } if (anyAdded) { return new EntityExpression(entity.Entity, this.BuildEntityExpression(entity.Entity, assignments.Values.ToList())); } return entity; }