Advertisement
Guest User

Untitled

a guest
Apr 16th, 2014
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. class CompanyDal(ISession session) //nhibernate session
  2. {
  3. Save(ICompany company)
  4. {
  5. session.Save(company)
  6. }
  7. }
  8.  
  9. public class TenantConnectionProvider : DriverConnectionProvider
  10. {
  11. private IDictionary<string, string> _tenantConnectionStrings;
  12.  
  13. public override void Configure(IDictionary<string, string> settings)
  14. {
  15. // Load connection strings from config file
  16. _tenantConnectionStrings = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
  17. foreach (ConnectionStringSettings connectionStringSetting in ConfigurationManager.ConnectionStrings)
  18. {
  19. _tenantConnectionStrings.Add(connectionStringSetting.Name, connectionStringSetting.ConnectionString);
  20. }
  21.  
  22. base.Configure(settings);
  23. }
  24.  
  25. public override IDbConnection GetConnection()
  26. {
  27. var connectionString = GetConnectionString(); //not shown, mine is for Web API
  28. var connection = new SqlConnection(connectionString);
  29. connection.Open();
  30. return connection;
  31. }
  32. }
  33.  
  34. // connection string has to be set even though custom provider is used
  35. var config = Fluently.Configure()
  36. .Database(MsSqlConfiguration.MsSql2008.ConnectionString("custom").Provider<TenantConnectionProvider>)
  37. .Mappings(m =>
  38. {
  39. m.FluentMappings.AddFromAssemblyOf<MyClass>();
  40. });
  41.  
  42. .Register<ISession>(factory1.OpenSession()).Named("f1");
  43. .Register<ISession>(factory2.OpenSession()).Named("f2");
  44.  
  45. .Register<IRepository>().OnActivating(e => {
  46. var db = HttpContext.Current.Request.Url....//some code to find the db
  47. var dep = e.Context.Resolve<ISession>("f1");
  48. e.Instance.SetTheDependency(dep);})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement