Esempio n. 1
0
        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);
 }
Esempio n. 3
0
        private void GetDefaultSqlType(Type propertyType, EntityFieldMetaData m)
        {
            string defaultType = "";

            if (_defaultTypes.ContainsKey(propertyType))
            {
                defaultType = _defaultTypes[propertyType];
            }

            SetColumnType(defaultType, m);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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];
            }
        }
Esempio n. 6
0
 private void SetTimestampAttribute(TimestampAttribute a, EntityFieldMetaData m)
 {
     m.IsRowVersion = true;
     SetColumnType("Rowversion", m);
 }
Esempio n. 7
0
 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));
 }