我的项目需要处理三个数据库,这意味着三个会话工厂.问题是如果我用流利的nhibernate做这样的事情:
.Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()))
Run Code Online (Sandbox Code Playgroud)
工厂将获取所有映射,甚至是与另一个数据库相对应的映射
我已经看到,当使用自动化时,您可以执行类似的操作,并按命名空间过滤:
.Mappings(m => m.AutoMappings.Add(
AutoMap
.AssemblyOf<Product>()
.Where(t => t.Namespace == "Storefront.Entities")))
Run Code Online (Sandbox Code Playgroud)
我没有找到这样的流利映射,是否有可能?我能想到的唯一解决方案是:为每个db映射类创建单独的程序集,或者将每个实体显式添加到工厂配置中.
如果可能的话,我宁愿避免这两种情况.谢谢.