public CodeMemberProperty AddProperty(IColumInfoModel info) { var propertyName = info.GetPropertyName(); var targetType = info.ColumnInfo.TargetType.FullName; CodeMemberProperty codeMemberProperty; if (info.EnumDeclaration != null) { codeMemberProperty = AddProperty(propertyName, new CodeTypeReference(info.EnumDeclaration.Name)); //var enumConverter = new ValueConverterAttribute(typeof(EnumMemberConverter)); codeMemberProperty.CustomAttributes.Add(new CodeAttributeDeclaration(typeof(ValueConverterAttribute).Name, new CodeAttributeArgument(new CodeTypeOfExpression(typeof(EnumMemberConverter))))); } else { codeMemberProperty = AddProperty(propertyName, new CodeTypeReference(targetType)); if (info.IsRowVersion) { var forModel = new RowVersionAttribute(); codeMemberProperty.CustomAttributes.Add(new CodeAttributeDeclaration(forModel.GetType().Name)); } } if (!string.IsNullOrEmpty(info.NewColumnName)) { var forModel = new ForModelAttribute(info.ColumnInfo.ColumnName); codeMemberProperty.CustomAttributes.Add(new CodeAttributeDeclaration(forModel.GetType().Name, new CodeAttributeArgument(new CodePrimitiveExpression(forModel.AlternatingName)))); } return codeMemberProperty; }
/// <summary> /// 设置扩展属性:是否是行版本字段(IsRowVersion) /// </summary> /// <param name="ext"></param> /// <param name="pd"></param> internal static void SetExtendProerty_RowVersion(IExtendProperty ext, PropertyDescriptor pd) { RowVersionAttribute a = pd.Attributes[typeof(RowVersionAttribute)] as RowVersionAttribute; if (a != null) { ext.SetExtendPropertyValue("IsRowVersion", true); } }
public CodeMemberProperty AddProperty(IColumInfoModel info) { var propertyName = info.GetPropertyName(); var targetType = info.ColumnInfo.TargetType; if (info.ColumnInfo.Nullable && !info.ColumnInfo.TargetType.IsClass) { targetType = typeof(Nullable <>).MakeGenericType(targetType); } CodeMemberProperty codeMemberProperty; if (info.EnumDeclaration != null) { codeMemberProperty = AddProperty(propertyName, new CodeTypeReference(info.EnumDeclaration.Name)); //var enumConverter = new ValueConverterAttribute(typeof(EnumMemberConverter)); codeMemberProperty.CustomAttributes.Add(new CodeAttributeDeclaration(typeof(ValueConverterAttribute).Name, new CodeAttributeArgument(new CodeTypeOfExpression(typeof(EnumMemberConverter))))); } else { codeMemberProperty = AddProperty(propertyName, new CodeTypeReference(targetType)); if (info.IsRowVersion) { var forModel = new RowVersionAttribute(); codeMemberProperty.CustomAttributes.Add(new CodeAttributeDeclaration(forModel.GetType().Name)); } } if (!string.IsNullOrEmpty(info.NewColumnName)) { var forModel = new ForModelAttribute(info.ColumnInfo.ColumnName); codeMemberProperty.CustomAttributes.Add(new CodeAttributeDeclaration(forModel.GetType().Name, new CodeAttributeArgument(new CodePrimitiveExpression(forModel.AlternatingName)))); } return(codeMemberProperty); }