Ejemplo n.º 1
0
        /// <summary>
        /// Creates new <see cref="QueryParameterBinding"/> with specified
        /// <paramref name="valueType"/> and <paramref name="valueAccessor"/>.
        /// </summary>
        /// <param name="valueType">Value type to use.</param>
        /// <param name="valueAccessor">Value accessor to use.</param>
        /// <returns>Created binding.</returns>
        public QueryParameterBinding CreateParameterBinding(Type valueType, Func <ParameterContext, object> valueAccessor)
        {
            ArgumentValidator.EnsureArgumentNotNull(valueType, "valueType");
            ArgumentValidator.EnsureArgumentNotNull(valueAccessor, "valueAccessor");

            var mapping = driver.GetTypeMapping(valueType);

            return(new QueryParameterBinding(
                       new Providers.QueryParameterBinding(mapping, valueAccessor)));
        }
    // Constructors

    public MetadataMapping(StorageDriver driver, NameBuilder nameBuilder)
    {
      this.nameBuilder = nameBuilder;

      Assembly = TableOf(typeof (Assembly));
      AssemblyName = ColumnOf((Assembly x) => x.Name);
      AssemblyVersion = ColumnOf((Assembly x) => x.Version);

      Type = TableOf(typeof (Metadata.Type));
      TypeId = ColumnOf((Metadata.Type x) => x.Id);
      TypeName = ColumnOf((Metadata.Type x) => x.Name);

      Extension = TableOf(typeof (Extension));
      ExtensionName = ColumnOf((Extension x) => x.Name);
      ExtensionText = ColumnOf((Extension x) => x.Text);

      StringMapping = driver.GetTypeMapping(WellKnownTypes.String);
      IntMapping = driver.GetTypeMapping(WellKnownTypes.Int32);
    }