/// <summary> /// Get a property based on a expression. Eg.: 'x => x.UserId' return string "UserId" /// </summary> private EntityBuilder <T> GetProperty <TK, K>(Expression <Func <TK, K> > property, Action <MemberMapper> action) { if (property == null) { throw new ArgumentNullException(nameof(property)); } var prop = _entity.GetMember(property); if (prop == null) { throw new ArgumentNullException(property.GetPath()); } action(prop); return(this); }
/// <summary> /// Get a property based on a expression. Eg.: 'x => x.UserId' return string "UserId" /// </summary> private EntityBuilder <T> GetMember <TK, K>(Expression <Func <TK, K> > member, Action <MemberMapper> action) { if (member == null) { throw new ArgumentNullException(nameof(member)); } var memb = _entity.GetMember(member); if (memb == null) { throw new ArgumentNullException($"Member '{member.GetPath()}' not found in type '{_entity.ForType.Name}' (use IncludeFields in BsonMapper)"); } action(memb); return(this); }