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); }
/// <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); }
/// <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); }
/// <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); }
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); }
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); }