Tag: 多数据库

如何使用Fluent NHibernate和多个数据库识别特定实体的会话工厂

问题接着来自Fluent NHibernate +多个数据库 (无需关注此链接,此处应该有足够的背景)。 我的问题是: 我正在使用Fluent NHibernate。 我的应用使用多个数据库。 每个数据库都有自己的实体注册(映射)它。 结果是具有多个会话工厂,每个工厂与单个DB相关,并且每个“包含”其自己的一组映射实体。 对于加载实体,我创建了一个通用的Factory类,它提供了一些可用于任何注册实体(在任何DB中)的标准加载方法。 问题是:加载方法需要为我正忙着处理的实体类使用正确的会话工厂。 我如何确定需要使用哪个会话工厂? 我手头有所有的Session Factories(并且由数据库名称索引),我只需要一种方法,只知道我即将加载的实体的类型,选择正确使用的Session Factory。 例如: public IBaseBusinessObject CreatePopulatedInstance(Type boType, Guid instanceKey) { IBaseBusinessObject result = null; ISessionFactory sessionFactory = GetSessionFactory(boType); using (ISession session = sessionFactory.OpenSession()) { using (session.BeginTransaction()) { result = (IBaseBusinessObject)session.Get(boType, instanceKey); } } return result; } 需要在GetSessionFactory(boType)中进行什么? 谢谢阅读!

ASP.net一次连接两个数据库?

可能同时连接两个SQL数据库吗? 我的意思是从一个数据库我正在阅读记录并将它们与一些数据(如电子邮件地址)进行比较,并根据数据库中是否存在该电子邮件地址的决定我将新记录存储在另一个数据库中。 这种双重操作可能吗? 我使用C#.net的SqlConnection和SqlCommand语句连接数据库 谢谢。

.NET迁移:在运行时设置和迁移多个数据库

简介:我有这个ASP.NET Webforms站点的特殊性,它不只有1个数据库,它有很多。 为什么? 因为您可以即时创建站点的新“实例”。 每个“实例”共享相同的代码库,但拥有自己的数据库。 这些所有数据库都具有相同的模式(结构),但当然是不同的数据。 不要问’你为什么不把所有东西放在一个数据库中,并使用InstanceId知道哪个是“因为它是一个商业政策的事情。 由于url,应用程序知道正在请求哪个实例。 有一个额外的数据库来完成这个(我知道它在设计时的连接字符串)。 此数据库只有2个表,并将URL与“应用程序实例”关联。 然后,当然,每个“应用程序实例”都有其关联的连接字符串。 当前情况:现在没有任何东西可以帮助我们同步保存每个实例数据库(将模式更改传播到每个实例)。 所以我们手工完成,当然这是一团糟。 问题:我想使用rails-migration方式来处理架构更改,最好是migratordotnet ,但如果更容易设置,可以使用任何其他方法。 问题是migratordotnet需要在proj.build文件中声明连接字符串,直到运行时我才知道它们。 真正有用的是在Application_Start上运行的某种方法,它将最新的迁移应用于每个数据库。 如何通过migratordotnet或任何类似的方式完成? 任何其他建议都值得欢迎。 谢谢!