private void GetField(PropertyInfo propertyInfo, EntityMetaData metaData) { var fieldMetaData = new EntityFieldMetaData(metaData); fieldMetaData.Name = propertyInfo.Name; fieldMetaData.DbColumnName = propertyInfo.Name; GetDefaultSqlType(propertyInfo.PropertyType, fieldMetaData); var attributes = propertyInfo.GetCustomAttributes(); foreach (var attribute in attributes) { if (attribute is IgnoreAttribute) { return; } var attributeType = attribute.GetType(); if (_attributeHandlers.ContainsKey(attributeType)) { _attributeHandlers[attributeType](attribute, fieldMetaData); } } metaData.Fields.Add(fieldMetaData); }
public ExpressionBuilder AddEqualsTo(EntityFieldMetaData field) { Expressions.Add(new EqualToOperatorExpression { Left = new EntityFieldMetaDataExpression(field), Right = new ParameterExpression("@" + field.Name) }); return(this); }
private void GetDefaultSqlType(Type propertyType, EntityFieldMetaData m) { string defaultType = ""; if (_defaultTypes.ContainsKey(propertyType)) { defaultType = _defaultTypes[propertyType]; } SetColumnType(defaultType, m); }
public void Test_FieldMetaData() { var sut = new EntityFieldMetaData <Person>(z => z.Name); Assert.Equal(typeof(string), sut.Type); Assert.Equal("Name", sut.Name); var name = sut.GetExpression.Compile()(new Person { Name = "Tim", Age = 35 }); Assert.Equal("Tim", name); }
private void SetColumnType(string dataType, EntityFieldMetaData m) { if (string.IsNullOrWhiteSpace(dataType)) { return; } var items = dataType.Split(new[] { '(', ')', ',' }, StringSplitOptions.RemoveEmptyEntries); m.DbColumnType = items[0]; if (items.Length > 1) { m.Size = items[1]; } if (items.Length > 2) { m.Precision = items[2]; } }
private void SetTimestampAttribute(TimestampAttribute a, EntityFieldMetaData m) { m.IsRowVersion = true; SetColumnType("Rowversion", m); }
private void SetColumnAttribute(ColumnAttribute a, EntityFieldMetaData m) { m.DbColumnName = a.Name; SetColumnType(a.TypeName, m); }
public EntityFieldMetaDataExpression(EntityFieldMetaData entityFieldMetaData) { EntityFieldMetaData = Ensure.IsNotNull(entityFieldMetaData, nameof(entityFieldMetaData)); }