将不同的dll自动化到不同的数据库

时间:2011-04-04 21:56:20

标签: c# orm fluent-nhibernate connection-string

我最近开始使用nhibernate 3和流畅的nhibernate作为我的ORM在家中构建域名。我网域中的所有内容都可以使用。

我目前正在探索使用automapper将我的解决方案中的不同dll映射到不同数据库的可能性。我的google-kung-fu在我的“研究”中找到了很少且不相关的结果。

可以吗?如果要完成,我的IQueryables会发生什么,我的查询可以包含来自不同数据库但不一定由同一数据库实例或物理机托管的实体?

例如,我想做(连接字符串不同):

connectionstring1:Data Source = myTestServerAddress; Initial Catalog = test; User Id = myTestUsername; Password = myTestPassword;

namespace test //in assembly test, connectionstring1
{
    public class test
    {
        public virtual int Id { get; set; }
        public virtual string testme { get; set; }
    }
}

connectionstring2:Data Source = myTestTestServerAddress; Initial Catalog = TestTest; User Id = myTestTestUsername; Password = myTestTestPassword;

namespace testtest //in assembly testtest, connectionstring2
{
    public class testtest
    {
        public virtual int Id { get; set; }
        public virtual test test { get; set; } //test is in different assembly
    }
}

1 个答案:

答案 0 :(得分:0)

我不确定为什么要让它们驻留在不同的数据库中。您可以使用分片来进行负载均衡或(如Cole W所说)只保存testtest中的test_id使用2个不同的sessionfactories并从第一个开始会话以在需要时进行测试。