void btnPropertyInsert_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(tbProperty.Text) || cmbPropertyType.SelectedIndex < 0) { MessageBox.Show("属性名或者属性类型为空!"); } else { PropertyInfo propertyInfo = new PropertyInfo(); propertyInfo.PropertyName = tbProperty.Text; propertyInfo.PropertyNote = tbPropertyNote.Text; switch (Convert.ToString(cmbPropertyType.SelectedValue)) { case "string": propertyInfo.PropertyType = "string"; propertyInfo.PropertyDBType = "VARCHAR2"; break; case "datetime": propertyInfo.PropertyType = "System.Nullable<System.DateTime>"; propertyInfo.PropertyDBType = "DATE"; break; case "number": propertyInfo.PropertyType = "System.Nullable<decimal>"; propertyInfo.PropertyDBType = "NUMBER"; break; } properyInfoList.Add(propertyInfo); BindingPropertyInfos(); } }
StringBuilder GeneratePropertyCode(PropertyInfo properyInfo) { StringBuilder template = new StringBuilder(); if (properyInfo != null) { string name = properyInfo.PropertyName; string _name = "_" + (name.ToLower().Replace("_", "")); string note = properyInfo.PropertyNote; string type = properyInfo.PropertyType; string dbType = properyInfo.PropertyDBType; template.AppendFormat("private {0} {1};", type, _name); template.AppendLine(); if (!string.IsNullOrEmpty(note)) { template.Append("/// <summary>"); template.AppendLine(); template.AppendFormat("///{0}", note); template.AppendLine(); template.Append("/// </summary>"); template.AppendLine(); } template.AppendFormat("[Column(Storage = \"{0}\", Name = \"{1}\", DbType = \"{2}\", AutoSync = AutoSync.Never)]" , _name, name, dbType); template.AppendLine(); template.Append("[DebuggerNonUserCode()]"); template.AppendLine(); template.AppendFormat("public {0} {1}", type, name); template.AppendLine(); template.Append("{get{"); template.AppendLine(); template.AppendFormat("return this.{0};", _name); template.AppendLine(); template.Append("}set{"); template.AppendLine(); template.AppendFormat(" if (({0} == value) == false)", _name); template.AppendLine(); template.Append("{"); template.AppendLine(); template.AppendFormat("this.{0} = value;this.OnPropertyChanged(\"{1}\");", _name, name); template.AppendLine(); template.Append("}}}"); } return template; }