So, you want to use FluentNHibernate to configure factories built via NHIntegration facility.
What I would try to do: 1. Create a IConfigurationContributor for each of your domains. 2. Check in contributors the name/factory-id to modify only the right configuration 3. Modify the configuration with FluentNHibernate. This is just one way to achieve it. On Mon, Oct 19, 2009 at 11:49 AM, Wayne Douglas <[email protected]> wrote: > > hey - cheers for looking at this with me. > > not very experienced with nhib - i thought the assembly definition in > the xml would point the factory to one assembly so it would only push > the resulting sql creation scripts to that one db. i thought the one > in the c# was just there to bootstrap it all. > > so i need to have 2 separate config builders? > > how do i wire one up with one factory configuration and the other with > the other configuration? > > On Sun, Oct 18, 2009 at 12:22 PM, Valeriu Caraulean <[email protected]> > wrote: >> >> You have specified assemblies related to each session factory in XML >> configuration. Why you do that again in code? >> >> Your configuration builder adds two assemblies. Are those assemblies >> each for different domain? Then why you're adding them both to >> configuration? >> >> >> On Sat, Oct 17, 2009 at 12:53 PM, Wayne Douglas <[email protected]> >> wrote: >>> >>> very strange :s >>> >>> here is my config builder: >>> >>> <code> >>> >>> public class FluentNHibernateConfigurationBuilder : IConfigurationBuilder >>> { >>> #region IConfigurationBuilder Members >>> >>> public Configuration GetConfiguration(IConfiguration >>> facilityConfiguration) >>> { >>> var defaultConfigurationBuilder = new >>> DefaultConfigurationBuilder(); >>> Configuration configuration = >>> defaultConfigurationBuilder.GetConfiguration(facilityConfiguration); >>> >>> var models = new PersistenceModel(); >>> models.AddMappingsFromAssembly(typeof(Provider).Assembly); >>> models.AddMappingsFromAssembly(typeof(Report).Assembly); >>> models.Conventions.Add(typeof(ForeignKeyConventionOverride)); >>> models.Configure(configuration); >>> >>> if (AppSettings.GetConfigurationBoolean("RebuildDb", false)) >>> { >>> var export = new SchemaExport(configuration); >>> var sb = new StringBuilder(); >>> TextWriter output = new StringWriter(sb); >>> export.Drop(true, true); >>> export.Execute(true, false, false, null, output); >>> export.Create(true, true); >>> } >>> >>> return configuration; >>> } >>> >>> #endregion >>> } >>> >>> </code> >>> >>> any help? >>> >>> obv the classes Provider and Report come from 2 seperate assemblies >>> and this config builder lives inside my web project which has >>> references to both. >>> >>> w:// >>> >>> On Fri, Oct 16, 2009 at 11:08 PM, Valeriu Caraulean <[email protected]> >>> wrote: >>>> >>>> The config looks ok. >>>> Are you sure your code is correct? >>>> >>>> On Fri, Oct 16, 2009 at 10:06 PM, Wayne Douglas <[email protected]> >>>> wrote: >>>>> >>>>> so... still not got this working :( >>>>> >>>>> here is the actual config i'm using: >>>>> >>>>> <code> >>>>> >>>>> <castle> >>>>> <components> >>>>> <component id="GenericRepository" type="Ideal.Web.Repository`1, >>>>> Ideal.Web"/> >>>>> </components> >>>>> <facilities> >>>>> <facility id="nhibernate" >>>>> isWeb="true" >>>>> >>>>> type="Castle.Facilities.NHibernateIntegration.NHibernateFacility, >>>>> Castle.Facilities.NHibernateIntegration" >>>>> >>>>> configurationBuilder="Ideal.Rttm.Web.FluentNHibernateConfigurationBuilder, >>>>> Ideal.Rttm.Web"> >>>>> >>>>> <factory id="nhibernate.factory.session1"> >>>>> <settings> >>>>> <item key="show_sql">true</item> >>>>> <item key="connection.provider"> >>>>> NHibernate.Connection.DriverConnectionProvider >>>>> </item> >>>>> <item key="connection.driver_class"> >>>>> NHibernate.Driver.SqlClientDriver >>>>> </item> >>>>> <item key="connection.connection_string"> >>>>> Data Source=.;Initial Catalog=Reporting1;User >>>>> Id=sa;Password=xxx; >>>>> </item> >>>>> <item key="dialect"> >>>>> NHibernate.Dialect.MsSql2005Dialect >>>>> </item> >>>>> <item key="proxyfactory.factory_class"> >>>>> NHibernate.ByteCode.Castle.ProxyFactoryFactory, >>>>> NHibernate.ByteCode.Castle >>>>> </item> >>>>> </settings> >>>>> <assemblies> >>>>> <assembly>Ideal.Rttm.Model</assembly> >>>>> </assemblies> >>>>> </factory> >>>>> >>>>> <factory id="nhibernate.factory.session2" alias="reporting"> >>>>> <settings> >>>>> <item key="show_sql">true</item> >>>>> <item key="connection.provider"> >>>>> NHibernate.Connection.DriverConnectionProvider >>>>> </item> >>>>> <item key="connection.driver_class"> >>>>> NHibernate.Driver.SqlClientDriver >>>>> </item> >>>>> <item key="connection.connection_string"> >>>>> Data Source=.;Initial Catalog=Reporting2;User >>>>> Id=sa;Password=xxx; >>>>> </item> >>>>> <item key="dialect"> >>>>> NHibernate.Dialect.MsSql2005Dialect >>>>> </item> >>>>> <item key="proxyfactory.factory_class"> >>>>> NHibernate.ByteCode.Castle.ProxyFactoryFactory, >>>>> NHibernate.ByteCode.Castle >>>>> </item> >>>>> </settings> >>>>> <assemblies> >>>>> <assembly>Ideal.Reporting.Model</assembly> >>>>> </assemblies> >>>>> </factory> >>>>> >>>>> </facility> >>>>> <facility id="atm" >>>>> type="Castle.Facilities.AutomaticTransactionManagement.TransactionFacility, >>>>> Castle.Facilities.AutomaticTransactionManagement" /> >>>>> </facilities> >>>>> </castle> >>>>> >>>>> </code> >>>>> >>>>> has anyone used the nh facility to do this? >>>>> >>>>> On Thu, Oct 15, 2009 at 3:48 PM, Valeriu Caraulean <[email protected]> >>>>> wrote: >>>>>> >>>>>> Different connection strings? >>>>>> I mean, are they different? >>>>>> >>>>>> On Thu, Oct 15, 2009 at 11:49 AM, Wayne Douglas <[email protected]> >>>>>> wrote: >>>>>>> >>>>>>> Hi >>>>>>> >>>>>>> I'm using the nh facility to configure the following setup: >>>>>>> >>>>>>> i have 1 database which stores generic report configuration. >>>>>>> and another which stores the actual report data. >>>>>>> >>>>>>> i also have 1 project for interacting with the report configuration >>>>>>> database (entities and mappings etc) >>>>>>> and another for interacting with the report data database (entities >>>>>>> and mappings etc). >>>>>>> >>>>>>> i've used the following to create 2 factories: >>>>>>> >>>>>>> <code> >>>>>>> >>>>>>> <facilities> >>>>>>> <facility id="nhibernate"> >>>>>>> <factory id="nhibernate.factory.session1"> >>>>>>> ... >>>>>>> <assemblies> >>>>>>> <assembly>ReportData.Model</assembly> >>>>>>> </assemblies> >>>>>>> </factory> >>>>>>> >>>>>>> <factory id="nhibernate.factory.session2" alias="reporting"> >>>>>>> ... >>>>>>> <assemblies> >>>>>>> <assembly>Reporting.Model</assembly> >>>>>>> </assemblies> >>>>>>> </factory> >>>>>>> </facility> >>>>>>> </facilities> >>>>>>> >>>>>>> <code> >>>>>>> >>>>>>> the problem is is that even though nhibernate.factory.session1 and >>>>>>> nhibernate.factory.session2 are looking at different databases and >>>>>>> have different assemblies configured it always seems to create the >>>>>>> tables for both models in both DBs? >>>>>>> >>>>>>> how do i tell nhibernate.factory.session1 to look at db1 and model1 >>>>>>> and nhibernate.factory.session2 to look at db2 and model2? >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Cheers, >>>>>>> >>>>>>> w:// >>>>>>> >>>>>>> > >>>>>>> >>>>>> >>>>>> > >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Cheers, >>>>> >>>>> w:// >>>>> >>>>> > >>>>> >>>> >>>> > >>>> >>>> >>> >>> >>> >>> -- >>> Cheers, >>> >>> w:// >>> >>> > >>> >> >> > >> >> > > > > -- > Cheers, > > w:// > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en -~----------~----~----~----~------~----~------~--~---
