private static void PropertyConvension(IModelInspector modelInspector,
                                               PropertyPath propertyPath,
                                               IPropertyMapper propertyMapper)
        {
            if (modelInspector.IsSet(propertyPath.LocalMember))
            {
                propertyMapper.Access(Accessor.Field);
            }

            var type = propertyPath.LocalMember.GetPropertyOrFieldType();

            if (!type.IsNullable())
            {
                propertyMapper.NotNullable(true);
            }

            var propertyName = propertyPath.LocalMember.Name;

            if (modelInspector.IsComponent(propertyPath.LocalMember.ReflectedType))
            {
                var entityName = propertyPath.LocalMember.ReflectedType.Name;

                propertyMapper.Column(IdentityBuilder.BuildColumnName(entityName,
                                                                      propertyName));
            }
            else
            {
                propertyMapper.Column(IdentityBuilder.BuildColumnName(propertyName));
            }
        }
예제 #2
0
 public void ReadOnlyConvention(IModelInspector modelInspector, PropertyPath member, IPropertyMapper propertyCustomizer)
 {
     if (member.LocalMember is PropertyInfo)
     {
         var propInfo = (member.LocalMember as PropertyInfo);
         if (propInfo.CanWrite == false)
         {
             propertyCustomizer.Access(Accessor.ReadOnly);
         }
     }
 }