public PropertyBuilder <TProperty> Property <TProperty>(Expression <Func <TEntity, TProperty> > propertyExpression) { if (propertyExpression == null) { throw new ArgumentNullException(nameof(propertyExpression)); } var memberExpression = propertyExpression.Body as MemberExpression; if (memberExpression == null) { throw new ArgumentException($"'{propertyExpression}': is not a valid expression for this method"); } var propertyMetadata = _entityMetadata.AddProperty(memberExpression.Member.Name); return(new PropertyBuilder <TProperty>(propertyMetadata)); }