private void UpdatePropDefCol(string propName, bool isPrimaryKeyProp) { if (!_propDefCol.Contains(propName)) { //set up this property var newPropDefBuilder = new PropDefBuilder <T>(); var propertyInfo = ReflectionUtilities.GetPropertyInfo(typeof(T), propName); if (propertyInfo == null) { newPropDefBuilder.WithPropertyName(propName); if (isPrimaryKeyProp) { newPropDefBuilder.WithType(typeof(Guid)); } } else { Type propertyType = ReflectionUtilities.GetUndelyingPropertType(propertyInfo); newPropDefBuilder.WithPropertyName(propertyInfo.Name); newPropDefBuilder.WithType(propertyType); } if (isPrimaryKeyProp) { newPropDefBuilder.WithReadWriteRule(PropReadWriteRule.WriteNew); } var pkPropDef = newPropDefBuilder.Build(); _propDefCol.Add(pkPropDef); } }
private PropDefBuilder <T> GetPropDefBuilder(string propertyName) { var propDefBuilder = new PropDefBuilder <T>(CreatePropertiesDefBuilder2()); propDefBuilder.WithPropertyName(propertyName); return(propDefBuilder); }
public PropDefBuilder <T> Property <TReturnType>(Expression <Func <T, TReturnType> > propExpression) { var propDefBuilder = new PropDefBuilder <T>(CreatePropertiesDefBuilder2()); PropertyInfo propertyInfo = GetPropertyInfo(propExpression); propDefBuilder.WithPropertyName(propertyInfo.Name); Type propertyType = ReflectionUtilities.GetUndelyingPropertType(propertyInfo); propDefBuilder.WithAssemblyName(propertyType.Namespace); propDefBuilder.WithTypeName(propertyType.Name); PropDefBuilders.Add(propDefBuilder); return(propDefBuilder); }