Пример #1
0
		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;
		}
Пример #2
0
        /// <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);
            }
        }
Пример #3
0
        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);
        }