the interface is used to apply the filter to the mappings programmatically. However this is not required. you could wire this up in the mapping to any custom property you want. this is more laborious. personally I find the "cost" of the interface minimal compared to the simplistic architecture. convention over configuration.
On Nov 18, 9:12 am, Niclas Pehrsson <[email protected]> wrote: > Well I like the idea, but I do not really want an interface depenency > on my domain objects I want it to be transparent. > > On 17 Nov, 23:17, Jason Meckley <[email protected]> wrote: > > > if you use 1 database with tenancy (tables, or views) you can use NH > > filters on all queries. here is an > > example.http://nhforge.org/wikis/howtonh/contextual-data-using-nhibernate-fil... > > > if you go with 1 db per customer then you need to build the connection > > strings and/or session factories dynamically. i think there is an > > article about that either on the nhforge wiki or this user group. i > > can't find a link to it though. If I'm not mistaken you can implement > > your own connection string builder/factory/object and have NH use > > that. then you can have 1 session factory to manage all your > > databases. > > > another option is to use your IoC of choice to build/utilize the > > correct session factory on the fly the details of that would depend on > > the IoC. > > > On Nov 17, 4:06 pm, Niclas Pehrsson <[email protected]> wrote: > > > > I have some questions and thoughts about how to use NHibernate > > > efficient in a multi tenancy environment. > > > If we look at our business rules we have thousands of customers that > > > will run our system. We are hosting it all > > > Our system is an economy system and each customer has its own data. > > > But in some cases there are other companies that handles several of > > > our customer data and we want them to be able to login and have access > > > to all these customer data. > > > I have seen some solutions on multi tenancy solutions. What I can see > > > there are three. > > > Multiple databases (one per customer) > > > One database with views that has a tenancy id which will make the > > > database transparent and in the application make the database seem > > > like there are only one customer. > > > One database with all data, Solve what the customer shall see or not > > > se with Ids in every criteria or linq query > > > What is the best choice for me? > > > If I use multiple databases which are my favorite right now, we will > > > have thousands of databases in our SQL environment; can it be hard to > > > manage? In some cases we will have one user that can manage several > > > companies, I’m not sure they need to manage them at once, so it maybe > > > can be solved in an easy way. How shall we solve the sessionfactory > > > problem? The mapping and all settings will be the same for all > > > customers but the connection string will differ per customer so, can I > > > make an sessionfactory where I can make sessionFactory.OpenSession > > > (connectionstring) kind of thing? Or are there some problems with a > > > solution like that? The sessionfactory will in this case live in an > > > wcf service and an web application. > > > Views, are there any tips I need to know about? Any problems with > > > NHibernate working with views? Same problem here with the > > > sessionfactory, how can I change the connection string per session? > > > I don’t even want to think about the third solution -- You received this message because you are subscribed to the Google Groups "nhusers" 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/nhusers?hl=.
