示例#1
0
        public static IConfigure UsingNHibernate(this IHaveStorage storage, Action <EntityContextConnection> connectionConfiguration)
        {
            var connection = new EntityContextConnection();

            connectionConfiguration(connection);
            storage.EntityContextConfiguration = new EntityContextConfiguration {
                Connection = connection
            };
            Configure.Instance.Container.Bind <IConnection>(new ReadConnection(() => connection.SessionFactory));
            return(Configure.Instance);
        }
示例#2
0
        /// <summary>
        /// Configure the default storage mechanism to use MongoDB
        /// </summary>
        /// <param name="storage"><see cref="IHaveStorage"/> to configure</param>
        /// <param name="configureCallback">Callback to configure more details for the connections</param>
        /// <returns>Chained <see cref="IConfigure"/></returns>
        public static IConfigure UsingMongoDB(this IHaveStorage storage, Action <EntityContextConfiguration> configureCallback)
        {
            var entityContextConfiguration = new EntityContextConfiguration();

            configureCallback(entityContextConfiguration);

            var connection = new EntityContextConnection(entityContextConfiguration);

            entityContextConfiguration.Connection = connection;

            storage.EntityContextConfiguration = entityContextConfiguration;
            return(Configure.Instance);
        }
示例#3
0
        /// <summary>
        /// Use EntityFramework as <see cref="IHaveStorage">storage</see>
        /// </summary>
        /// <param name="storage"><see cref="IHaveStorage"/> to configure</param>
        /// <param name="connectionConfiguration">Callback for configuration the connection</param>
        /// <returns></returns>
        public static IConfigure UsingEntityFramework(this IHaveStorage storage, Action <EntityContextConfiguration> connectionConfiguration)
        {
            var configuration = new EntityContextConfiguration();

            connectionConfiguration(configuration);

            var connection = new EntityContextConnection(configuration);

            configuration.Connection = connection;

            storage.EntityContextConfiguration = configuration;

            return(Configure.Instance);
        }
        /// <summary>
        /// Configures <see cref="IHaveStorage">storage</see> to use a DocumentDB
        /// </summary>
        /// <param name="storage"><see cref="IHaveStorage">Storage</see> to configure</param>
        /// <param name="callback">Chained callback for configuring the specifics</param>
        /// <returns>Chained <see cref="IConfigure"/> for fluent configuration</returns>
        public static IConfigure UsingDocumentDB(this IHaveStorage storage, Action <EntityContextConfiguration> callback)
        {
            var configuration = new EntityContextConfiguration();

            callback(configuration);

            var collectionStrategy = new MultipleEntitiesInOneCollection();

            var connection = new EntityContextConnection(configuration, collectionStrategy);

            configuration.Connection = connection;

            storage.EntityContextConfiguration = configuration;

            Configure.Instance.Container.Bind <ICollectionStrategy>(collectionStrategy);

            return(Configure.Instance);
        }
示例#5
0
        /// <summary>
        /// Configures <see cref="IHaveStorage">storage</see> to use a simple files system
        /// </summary>
        /// <param name="storage"><see cref="IHaveStorage">Storage</see> to configure</param>
        /// <param name="path">Path to store files</param>
        /// <returns>Chained <see cref="IConfigure"/> for fluent configuration</returns>
        public static IConfigure UsingFiles(this IHaveStorage storage, string path)
        {
            if (!Path.IsPathRooted(path))
            {
                path = Path.Combine(Directory.GetCurrentDirectory(), path);
            }

            var configuration = new EntityContextConfiguration
            {
                Path = path
            };

            configuration.Connection = new EntityContextConnection(configuration);

            storage.EntityContextConfiguration = configuration;

            return(Configure.Instance);
        }
示例#6
0
        public static IConfigure UsingRavenDB(this IHaveStorage storage, Action <EntityContextConfiguration> configureCallback = null)
        {
            var entityContextConfiguration = new EntityContextConfiguration
            {
                IdPropertyRegister = new NullIdPropertyRegister()
            };

            if (configureCallback != null)
            {
                configureCallback(entityContextConfiguration);
            }

            var connection = new EntityContextConnection(entityContextConfiguration);

            entityContextConfiguration.Connection = connection;
            storage.EntityContextConfiguration    = entityContextConfiguration;

            return(Configure.Instance);
        }
示例#7
0
 public static IConfigure UsingNHibernate(this IHaveStorage storage, EntityContextConfiguration entityContextConfiguration, Func <ISessionFactory> getSessionFactory)
 {
     storage.EntityContextConfiguration = entityContextConfiguration;
     Configure.Instance.Container.Bind <IConnection>(new ReadConnection(getSessionFactory));
     return(Configure.Instance);
 }