private CodeMemberProperty WriteProperty(FieldDefinition definition) { CodeMemberProperty property = null; Type type = definition.Type; if (type.IsValueType) { //CodeTypeReference t2 = new CodeTypeReference(typeof(System.Nullable)); //t2.TypeArguments.Add(type); //property = new CodeMemberProperty(); //property.Type = t2; property = new CodeMemberProperty(); if (definition.ForeignKey) property.Type = new CodeTypeReference(definition.ForeignKeyType); else property.Type = new CodeTypeReference(definition.Type); } else { property = new CodeMemberProperty(); if (definition.ForeignKey) property.Type = new CodeTypeReference(definition.ForeignKeyType); else property.Type = new CodeTypeReference(definition.Type); } property.Name = definition.PropertyName; property.Attributes = MemberAttributes.Public | MemberAttributes.Final; if (property.Name != definition.ColumnName) { property.CustomAttributes.Add(new CodeAttributeDeclaration("Column", new CodeAttributeArgument[] { new CodeAttributeArgument(new CodePrimitiveExpression(definition.ColumnName)) })); } #region property comments property.Comments.AddRange(InsertDocumentation(Documetation.Summary, new string[] { "Property that that maps column '" + definition.ColumnName + "'." })); #endregion property.GetStatements.Add( new CodeMethodReturnStatement( new CodeFieldReferenceExpression(null, definition.FieldName))); property.SetStatements.Add( new CodeAssignStatement( new CodeFieldReferenceExpression(null, definition.FieldName), new CodeArgumentReferenceExpression("value"))); if (definition.PrimaryKey) { property.CustomAttributes.Add(new CodeAttributeDeclaration("PrimaryKey", new CodeAttributeArgument[] { })); } return property; }
private CodeTypeMember WriteField(FieldDefinition definition) { CodeMemberField field = null; if (definition.Type.IsValueType) { //CodeTypeReference t2 = new CodeTypeReference(typeof(System.Nullable)); //t2.TypeArguments.Add(type); //field = new CodeMemberField(t2, fieldName); if (definition.ForeignKey) field = new CodeMemberField(definition.ForeignKeyType, definition.FieldName); else field = new CodeMemberField(definition.Type, definition.FieldName); } else { if (definition.ForeignKey) field = new CodeMemberField(definition.ForeignKeyType, definition.FieldName); else field = new CodeMemberField(definition.Type, definition.FieldName); } field.Attributes = MemberAttributes.Private; return field; }