其实new newmacbook性能怎么样也没有那么不济了

两个同样的网站共用一个数据库要怎么分开呢? - 搜外问答
我们公司现在有三个一模一样的网站,后台也都是一样的,只要是在一个网站后台修改一个东西或者发布一篇文章另外两个网站也同样会更新,但是就是图片只会在一个网站上显示,我要怎么把他们分开呢?
864 次浏览
如果数据库共用,那会导致各个网站内容一致。
除了数据库分开,好像没特别好的方法了。
谢谢您的邀请。
我感觉你们这么做不太好,3个网站内容都一样,只要改一处,其他的2个站都会更新,建议把他们分开,夫唯老师说的对,分开数据库,而且后台最好分开,可以适当的在其中一个网站增加其他功能板块。
30天内高手都在交流什么
微信自媒体实战案例
从零开始玩转微信自媒体
(0 个回答)
(0 个回答)
(1 个回答)
(1 个回答)
(5 个回答)
(9 小时前)
(10 小时前)
(10 小时前)
(10 小时前)
(12 小时前)
专注、、运营
给问题设置一定金额,将更容易获得关注与回答。
选择支付方式查看: 5233|回复: 6
局域网几台电脑怎样可以访问同一个数据库?
阅读权限20
在线时间 小时
结帖率: (14/15)
我们是个小工作室,我想写个小软件,可以让每个人都可以把资料放到数据库里,这样就不用通过QQ发信息。
没写过这类型的,请大神指教!
或者还可以在一台电脑上建立一个共享文件夹,其他的局域网电脑只需要在“开始”——“运行”里面输入“\\”+那台电脑的IP地址就能打开共享文件夹了,而且速度很快,局域网能达到10M/秒的速度,使用起来也比较方便的。
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至
可获得加分喔。友情提醒:本版被采纳的主题可在
帖子申请荣誉值,获得 1点 荣誉值,荣誉值可兑换终身vip用户组哦。快捷通道: →
阅读权限165
在线时间 小时
签到天数: 6 天结帖率: (14/17)
用一台作为服务器安装server2003或者server2008,然后在上面安装SQL2000或者SQL2005数据库软件,之后在客户 ...
或者还可以在一台电脑上建立一个共享文件夹,其他的局域网电脑只需要在“开始”——“运行”里面输入“\\”+那台电脑的IP地址就能打开共享文件夹了,而且速度很快,局域网能达到10M/秒的速度,使用起来也比较方便的。
热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!
您可以选择打赏方式支持他
阅读权限120
在线时间 小时
签到天数: 7 天结帖率: (27/40)
一台为主服务器,其他连接& && &思路就这样
您可以选择打赏方式支持他
阅读权限130
在线时间 小时
签到天数: 2 天结帖率: (21/46)
当然可以,还可以放到互联网访问,都可以的
您可以选择打赏方式支持他
阅读权限70
在线时间 小时
结帖率: (4/4)
只要你局域网的电脑物理上是联通的,访问局域网中的一台电脑的数据库和访问本机的没有什么区别,。
您可以选择打赏方式支持他
阅读权限165
在线时间 小时
签到天数: 6 天结帖率: (14/17)
用一台作为服务器安装server2003或者server2008,然后在上面安装SQL2000或者SQL2005数据库软件,之后在客户Duan上面软件连接到服务器上面的SQL数据库,这样就能在每台局域网电脑上共享访问服务器上面的数据了
您可以选择打赏方式支持他
阅读权限228
在线时间 小时
签到天数: 8 天结帖率: (2/2)
文件共享啊& &百度下怎么共享就好
您可以选择打赏方式支持他
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,企业QQ: ,邮箱:@
Powered by
粤公网安备 25已解决问题
asp中如何使一个网页调用两个数据库(不同网站的),要详细?谢谢
浏览次数:1287
最满意答案
很简单的呀!不同的网站放在不同的目录下就OK了呀,如果要放在相同的目录下的话,就需要修改asp的连接模块呀,一般为conn把对应连接的数据库改一下就OK了呀!这是数据分开的情况,如果是有合在一起的,可以把两个数据库中的表合到一个数据库中,就可以共用了!
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
您可能有同感的问题
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is ok一个虚拟主机用户可以开通多个数据库吗?
你好万维网-客服中心
: : : :: :
关键词搜索
&万维网客户服务
&万维网代理合作
&万维网技术支持
Welcome to Nihao.Net Onlne Help System
&&& 常见问题
   ■ 常见问题
一个虚拟主机用户可以开通多个数据库吗?
为了服务器整体性能着想,暂不提供单空间多数据库服务。如需多数据库请购买更多空间。一般情况下,MYSQL可以通过安装程序时使用不同的表前缀实现多个相同或非相同的程序共存于同一数据库。MSSQL等同于MYSQL实现。
  |  |  |  |  |  |  | 
北京万维通港科技有限公司?你好万维网 官方网址:
通用网址:
电话:010-0-0-
技术支持电话:010-
《中华人民共和国电信与信息服务业务经营许可证》 编号:
《中华人民共和国增值电信业务经营许可证》 编号:
Copyright & 2012 by Nihao.Net. All Rights Reserved.使用多个数据库的NHibernate_ASP_网页开发_或代码
| 文章 >> 网页开发 >> ASP
使用多个数据库的NHibernate
简介以前在CodeProject文章描述使用文章不放过,并介绍了这听起来简单的办法的实施细则。虽然以前的文章集中在ASP.NET,下面的建议是在两个ASP.NET和Windows Forms支持。感谢你出去拉里西尔弗曼的合作,协助制定本办法。多数据库配置多个数据库时要做的第一件事是配置正确通信。为每个数据库创建一个单独的的配置文件,中央config文件夹中放入所有这些,然后从Web / app.config中引用它们。示例数据库配置文件作为一个例子,下面的配置文件可能被命名为〜/配置/ MyProjectDb.config。 =&1.0& =&utf-8&
&hibernate-configuration
xmlns=&urn:nhibernate-configuration-2.0& &
&session-factory name=&myProjectDb&&
&property name=&hibernate.connection.provider&&
NHibernate.Connection.DriverConnectionProvider&/property&
&property name=&hibernate.dialect&&
NHibernate.Dialect.MsSql2000Dialect&/property&
&property name=&hibernate.connection.driver_class&&
NHibernate.Driver.SqlClientDriver&/property&
&property name=&hibernate.connection.connection_string&&
Data Source=MySqlSDatabase=MyDb;
User ID=Password=&/property&
&property name=&hibernate.connection.isolation&&
ReadCommitted&/property&
&property name=&hibernate.default_schema&&MyDb.dbo&/property&
&mapping assembly=&MyProject.Core& /&
&/session-factory&
&/hibernate-configuration&的Web.config / App.config的设置现在,已在一个或多个配置文件中定义的数据库配置,NHibernate会话经理需要被告知哪些会话工厂都可以使用各自的配置文件所在的。一个解决方案,将提供大量的重用是创建一个自定义的配置文件阅读器。网页/的app.config,然后每个配置文件的生命,如下:{C}上面的配置是不是的 NHibernate的设置部分。必须写三个类来解析这个自定义的配置信息:OpenSessionInViewSection将解析配置文件的整体处理程序,SessionFactoriesCollection将作为quot上市的容器; sessionF元素,并SessionFactoryElement将个人的会话工厂设置映射。OpenSessionInViewSectionnamespace SomeReusableProject
public class OpenSessionInViewSection : ConfigurationSection
[ConfigurationProperty(&sessionFactories&, IsDefaultCollection = false)]
[ConfigurationCollection(typeof(SessionFactoriesCollection),
AddItemName=&sessionFactory&,
ClearItemsName=&clearFactories&)]
public SessionFactoriesCollection SessionFactories {
SessionFactoriesCollection sessionFactoriesCollection =
(SessionFactoriesCollection) base[&sessionFactories&];
return sessionFactoriesC
}SessionFactoriesCollectionnamespace SomeReusableProject
[ConfigurationCollection(typeof(SessionFactoryElement))]
public sealed class SessionFactoriesCollection :
ConfigurationElementCollection
public SessionFactoriesCollection() {
SessionFactoryElement sessionFactory =
(SessionFactoryElement) CreateNewElement();
Add(sessionFactory);
public override ConfigurationElementCollectionType CollectionType {
return ConfigurationElementCollectionType.AddRemoveClearM
protected override ConfigurationElement CreateNewElement() {
return new SessionFactoryElement();
protected override object GetElementKey(ConfigurationElement element) {
return ((SessionFactoryElement)element).N
public SessionFactoryElement this[int index] {
return (SessionFactoryElement) BaseGet(index);
if (BaseGet(index) != null) {
BaseRemoveAt(index);
BaseAdd(index, value);
new public SessionFactoryElement this[string name] {
return (SessionFactoryElement) BaseGet(name);
public int IndexOf(SessionFactoryElement sessionFactory) {
return BaseIndexOf(sessionFactory);
public void Add(SessionFactoryElement sessionFactory) {
BaseAdd(sessionFactory);
protected override void BaseAdd(ConfigurationElement element) {
BaseAdd(element, false);
public void Remove(SessionFactoryElement sessionFactory) {
if (BaseIndexOf(sessionFactory) &= 0) {
BaseRemove(sessionFactory.Name);
public void RemoveAt(int index) {
BaseRemoveAt(index);
public void Remove(string name) {
BaseRemove(name);
public void Clear() {
BaseClear();
}SessionFactoryElement请注意,配置元素允许一个可选设置的 isT提供。默认情况下,此设置是假的。如果设置为true,则在一个HTTP请求调用一个DB将包含在一个单一的交易给定的会话工厂。为了说明这一点,假设两个区议会的存在:MYDB和OtherDb。网页/ app.config的设置为MYDB声明 isT是真实的。此外,假设没有事务设置为OtherDb提供;即"isT仍然是虚假的。正如将在后面介绍,自MYDB是事务性的,交易将开始在每个HTTP请求开始,从而封装HTTP请求生命的每一个调用MYDB。在HTTP请求,调用MYDB单一的交易将被提交。在不利的一面,因为OtherDb将不是事务性,任何调用失败,以OtherDb将不会导致任何其他调用OtherDb在生活的每个HTTP请求回滚。using Configuration_StringValidator=System.Configuration.StringV
namespace SomeReusableProject
public class SessionFactoryElement : ConfigurationElement
public SessionFactoryElement() {}
public SessionFactoryElement(string name, string configPath) {
FactoryConfigPath = configP
[ConfigurationProperty(&name&, IsRequired = true,
IsKey=true, DefaultValue=&Not Supplied&)]
public string Name {
get { return (string) this[&name&]; }
set { this[&name&] = }
[ConfigurationProperty(&factoryConfigPath&, IsRequired = true,
DefaultValue = &Not Supplied&)]
public string FactoryConfigPath {
get { return (string)this[&factoryConfigPath&]; }
set { this[&factoryConfigPath&] = }
[ConfigurationProperty(&isTransactional&,
IsRequired = false, DefaultValue = false)]
public bool IsTransactional {
get { return (bool)this[&isTransactional&]; }
set { this[&isTransactional&] = }
}打开会话查看再访现在的配置文件和配置读者到位,HTTP模块可征读取配置设置,并开始交易,因此。 (显然,这个HTTP模块是ASP.NET特定的,并不适用于NET的WinForms - 。但基本概念是相同的)在前面的{A1}的文章,这是假设,打开会话视图会总是利用HTTP请求生命的交易。下面修改NHibernateSessionModule.cs开始只有当quot交易; isT是在web.config文件中设置为true。如前所述,仅此HTTP模块开始每个HTTP请求每一个事务会话工厂时isTransactional ="; truequot给定的会话工厂。最后,每一笔交易,然后致力于在HTTP请求结束。另外一个有趣的项目,要注意在代码的是,它通过FactoryConfigPath,从web.config拉,到NHibernateSessionManager有两个目的,NHibernateSessionManager将使用这条道路作为重点,在Hashtable寻找一个已经创建的会话工厂,并NHibernateSessionManager将使用相关的配置文件中初始化一个新的会话工厂,如果没有被发现。NHibernateSessionModulenamespace SomeReusableProject
public class NHibernateSessionModule : IHttpModule
public void Init(HttpApplication context) {
context.BeginRequest += new EventHandler(BeginTransaction);
context.EndRequest += new EventHandler(CommitAndCloseSession);
public void Dispose() { }
private void BeginTransaction(object sender, EventArgs e) {
OpenSessionInViewSection openSessionInViewSection =
GetOpenSessionInViewSection();
foreach (SessionFactoryElement sessionFactorySettings in
openSessionInViewSection.SessionFactories) {
if (sessionFactorySettings.IsTransactional) {
NHibernateSessionManager.Instance.BeginTransactionOn(
sessionFactorySettings.FactoryConfigPath);
private void CommitAndCloseSession(object sender, EventArgs e) {
OpenSessionInViewSection openSessionInViewSection =
GetOpenSessionInViewSection();
foreach (SessionFactoryElement sessionFactorySettings in
openSessionInViewSection.SessionFactories) {
if (sessionFactorySettings.IsTransactional) {
mitTransactionOn(
sessionFactorySettings.FactoryConfigPath);
foreach (SessionFactoryElement sessionFactorySettings in
openSessionInViewSection.SessionFactories) {
NHibernateSessionManager.Instance.CloseSessionOn(
sessionFactorySettings.FactoryConfigPath);
private OpenSessionInViewSection GetOpenSessionInViewSection() {
OpenSessionInViewSection openSessionInViewSection = ConfigurationManager
.GetSection(&nhibernateSettings&) as OpenSessionInViewS
if (openSessionInViewSection == null)
throw new ConfigurationErrorsException(&The nhibernateSettings & +
&section was not found by ConfigurationManager.&);
return openSessionInViewS
}管理多个会话工厂剩下的任务是从原来的{A1}文章修改的NHibernateSessionManager类,所以,它现在管理多个会话工厂。总的想法是,每个会话工厂是存储在Hashtable的使用及其相关的配置文件路径关键。如前所述,这使得很容易地找到会话工厂,或创建一个新的,如果没有找到。注意,即使下面的类用于存储和检索活动会话工厂使用HttpRuntime.Cache,它仍然会工作在。NET的WinForms环境。NHibernateSessionManagernamespace SomeReusableProject
public sealed class NHibernateSessionManager
#region Thread-safe, lazy Singleton
public static NHibernateSessionManager Instance {
return Nested.NHibernateSessionM
private NHibernateSessionManager() {}
private class Nested
static Nested() { }
internal static readonly NHibernateSessionManager
NHibernateSessionManager = new NHibernateSessionManager();
#endregion
Path location
private ISessionFactory GetSessionFactoryFor(string sessionFactoryConfigPath) {
if (string.IsNullOrEmpty(sessionFactoryConfigPath))
throw new ArgumentNullException(&sessionFactoryConfigPath& +
& may not be null nor empty&);
ISessionFactory sessionFactory =
(ISessionFactory)HttpRuntime.Cache.Get(sessionFactoryConfigPath);
if (sessionFactory == null) {
if (! File.Exists(sessionFactoryConfigPath))
throw new ApplicationException(
&The config file at '& + sessionFactoryConfigPath +
&' could not be found&);
NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
cfg.Configure(sessionFactoryConfigPath);
sessionFactory = cfg.BuildSessionFactory();
if (sessionFactory == null) {
throw new InvalidOperationException(
&cfg.BuildSessionFactory() returned null.&);
HttpRuntime.Cache.Add(sessionFactoryConfigPath,
sessionFactory, null, DateTime.Now.AddDays(7),
TimeSpan.Zero, CacheItemPriority.High, null);
return sessionF
public void RegisterInterceptorOn(string sessionFactoryConfigPath,
IInterceptor interceptor) {
ISession session = (ISession)contextSessions[sessionFactoryConfigPath];
if (session != null && session.IsOpen) {
throw new CacheException(&You cannot register & +
&an interceptor once a session has already been opened&);
GetSessionFrom(sessionFactoryConfigPath, interceptor);
public ISession GetSessionFrom(string sessionFactoryConfigPath) {
return GetSessionFrom(sessionFactoryConfigPath, null);
private ISession GetSessionFrom(string sessionFactoryConfigPath,
IInterceptor interceptor) {
ISession session = (ISession)contextSessions[sessionFactoryConfigPath];
if (session == null) {
if (interceptor != null) {
session = GetSessionFactoryFor(
sessionFactoryConfigPath).OpenSession(interceptor);
GetSessionFactoryFor(sessionFactoryConfigPath).OpenSession();
contextSessions[sessionFactoryConfigPath] =
if (session == null)
throw new ApplicationException(&session was null&);
public void CloseSessionOn(string sessionFactoryConfigPath) {
ISession session = (ISession)contextSessions[sessionFactoryConfigPath];
contextSessions.Remove(sessionFactoryConfigPath);
if (session != null && session.IsOpen) {
session.Close();
public void BeginTransactionOn(string sessionFactoryConfigPath) {
ITransaction transaction =
(ITransaction)contextTransactions[sessionFactoryConfigPath];
if (transaction == null) {
transaction = GetSessionFrom(sessionFactoryConfigPath).BeginTransaction();
contextTransactions.Add(sessionFactoryConfigPath, transaction);
public void CommitTransactionOn(string sessionFactoryConfigPath) {
ITransaction transaction =
(ITransaction)contextTransactions[sessionFactoryConfigPath];
if (transaction != null && !transaction.WasCommitted
&& !transaction.WasRolledBack) {
contextTransactions.Remove(sessionFactoryConfigPath);
catch (HibernateException) {
RollbackTransactionOn(sessionFactoryConfigPath);
public void RollbackTransactionOn(string sessionFactoryConfigPath) {
ITransaction transaction =
(ITransaction) contextTransactions[sessionFactoryConfigPath];
contextTransactions.Remove(sessionFactoryConfigPath);
if (transaction != null && !transaction.WasCommitted
&& !transaction.WasRolledBack) {
transaction.Rollback();
CloseSessionOn(sessionFactoryConfigPath);
private Hashtable contextTransactions {
if (CallContext.GetData(&CONTEXT_TRANSACTIONS&) == null) {
CallContext.SetData(&CONTEXT_TRANSACTIONS&, new Hashtable());
return (Hashtable)CallContext.GetData(&CONTEXT_TRANSACTIONS&);
private Hashtable contextSessions {
if (CallContext.GetData(&CONTEXT_SESSIONS&) == null) {
CallContext.SetData(&CONTEXT_SESSIONS&, new Hashtable());
return (Hashtable)CallContext.GetData(&CONTEXT_SESSIONS&);
}使用NHibernateSessionManager最后,唯一的其他修改原{A1}文章是改造GenericNHibernateDao.cs通过确定使用的会话工厂的会话工厂的配置文件路径的NHibernateSessionManager类。namespace SomeReusableProject
public abstract class GenericNHibernateDAO&T, ID& : IGenericDAO&T, ID&
Fully qualified
public GenericNHibernateDAO(string sessionFactoryConfigPath) {
if (string.IsNullOrEmpty(sessionFactoryConfigPath))
throw new ArgumentNullException(&sessionFactoryConfigPath & +
&may not be null nor empty&);
SessionFactoryConfigPath = sessionFactoryConfigP
private ISession session {
return NHibernateSessionManager.Instance.GetSessionFrom(
SessionFactoryConfigPath);
public T GetById(ID id, bool shouldLock) {
if (shouldLock) {
entity = (T) session.Load(persitentType, id, LockMode.Upgrade);
entity = (T)session.Load(persitentType, id);
protected readonly string SessionFactoryConfigP
...,从GenericNHibernateDao继承的任何具体的DAO必须然后通过父类的构造会话工厂配置路径;例如,公众的UserDAO(字符串sessionFactoryConfigPath):基地(sessionFactoryConfigPath){}。摘要多个数据库通信的同时不上来的时候,但它时,NHibernate是一个合适的解决方案。上面讨论的解决方案是可行的方法只有一个,但与任意数量的数据库,方便沟通,保持配置文件提供了一套可重用的类。一如往常,您的经验,反馈和建议是最欢迎的。其他资源{A1}。{A5}。历史日 - 初步张贴。
关于作者:
中国我是一名编程爱好者,谢谢为我们提供一个学习和分享的平台。有什么问题。可以就本内容回复,我看到时。会尽量回复的。
评论会员:
时间:喜所有
我寻找一些暗示,plese帮助!
我用这篇大文章中所述的sessionFactories。
我在某些时候需要加载数据从"dbOne会议"一个把它保存到"dbTwo会议"。复制工作,使我能坚持从sessionOne加载的数据,但它看起来的sessionOne被损坏了,因为我sessionOne.Flush()的错误,我想,因为保存sessionTwo对象仍连接到sessionOne。
任何试图做这样的成功?基本上我需要一种方法来复制一些数据,从sessionOne sessionTwo。
谢谢大家评论会员:
时间:嗨,这篇文章是有点老了,但还是很不错的。我真的想有一个WinForms示例。任何组织得到了一个评论会员:
时间:喜条例草案",
张贴休息的这一切辛勤工作表示感谢。
我刚才孵化一个NHibernate基于DAO库,但基于NHibernate的2.0
我是用引导程序项目从这里作为一个出发点{A6}
然后我意识到,我们需要一次打3的DB(遗留一塌糊涂)。复制不是一种选择,也不是链接的服务器。所以,我发现你的文章的基础上寻找多个DB NHibernate的做法。我最罢工是NHibernate的似乎并没有考虑应用程序的可能性击中多个数据库,看似没有多个DB功能英寸建
所以,我试图让我的头在你的文章及以上学位,在那里我可以合并两个引导程序文章。你似乎有很多相似性引导程序设计(最佳做法,我怀疑)。
所以我对你有两个问题。
1)你知道NHibernate的2使任何这容易吗?2)你的代码需要通过配置文件的路径作为一个DBS之间的差异化。这岂不是更友好的传递和使用的配置项的名称属性?有一个例子的项目消耗?某处,我们可以看到与这些对象的工作,在多个DB环境是什么感觉?
再次感谢,我期待着你的洞察力。
埃里克评论会员:
时间:喜埃里克,
我会建议检查出如何支持多个数据库是包含在S#ARP架构({A7}])。有没有"内置"的机制在NHibernate与多个数据库通信,但如S#ARP的一个框架显示如何可以与最新版本。
比利麦卡弗蒂评论会员:
时间:是否有人可以提供工程样品,使用2个数据库评论会员:
时间:我创建了一个单独的项目/本类的大会,除的DAO 引用外部项目从项目/组装/装配,在那里我有我的模型。Config文件被加载,直到LT映射大会="..." />是达到了。我很抱歉打扰任何人的东西,应该很容易解决,但我不知道如何完全限定大会举行我的模型,这样可以达到。任何帮助吗?在此先感谢评论会员:
时间:嗨,没有问题。大会mappint应该只是其中内容的HBMS assebly。因此,如果您在MyProject.Core HBMS,那么它应该LT;映射大会"MyProject.Core"/ GT; ,如果你HBMS只是名为MyProject的项目,那么它应该是放大器; LT;映射大会="MyProject的"/ AMP; GT;给它一个尝试,让我知道这是否对你的作品。
比利评论会员:
时间:为什么你需要通过在GenericDao SessionFactoryConfigPath,如果你把在web.config这个路径
return NHibernateSessionManager.Instance.GetSessionFrom(SessionFactoryConfigPath);
不应该的sessionFactoryConfigPath从web.config中读取。
修改于日(星期五),下午01:47 评论会员:
时间:你说得对,这将是简单的。 评论会员:
时间:我有一个测试项目,试图使用NHibernate的最佳实践1.2条规定的框架。这个项目是试图有一个域模型持久化类是从两个数据库有相同namespace.nbsp的一部分;
我们的目标是不关心的任何数据生命,但只是建立一个丰富的领域层。 NBSP
如果我创建一个对象,每个数据库有自己的存在是不是一个问题,对象是水合每个database.nbsp正确;
如果一个对象引用其他异常被抛出上{: 封闭式 NBSP被抛出的异常;; 我得到这个错误在引用类 NBSP的所有属性异常从其他DB.nbsp引用的对象BR}
基地{NHibernate.HibernateException} = {"无法加载的实体:[Model.Production#2] [SQL:SELECT ROWID1_1_0_,为{BR production0_.ACTIVATION_KEY production0_.ROWID}
{BR WHERE production0_.ROWID =?]"}{ BR}
最内层异常:
"无效的对象名称"生产"。"
ACTIVATION2_1_0_生产production0_ }下面是一个调用code.nbsp的例子;
此代码仅用于演示目的
SupportRepository supportRepository =新SupportRepository(SUPPORTCONFIGFILEPATH);
/ /这是 IListlt错误的对象的集合; S支持= supportRepository.Get()
IProductionRepository =新ProductionRepository(PRODUCTIONCONFIGFILEPATH) IL P制作= ProductionFactory.Get() LT /
/ /使用调试器支持[0] Production.Activati​​onKey是其中的例外是visible.
是否有人有任何的建议来解决这个问题
/ /代码,以供参考:?NBSP
支持数据库配置文件:
LT;吗? XML版本="1.0"编码="UTF -"GT;
的xmlns ="瓮:NHibernate的配置2.2"?GT;
NBSP ; LT;会话工厂的名称="支持"GT;
LT;属性名称="方言"GT; NHibernate.Dialect.MsSql2005D /
LT;财产 - ;
LT;财产 - ;
LT的属性名称="connection.connection_string"GT,数据源的初始目录=支持; UID =用户; PWD = PWD; LT /
LT属性名称="connection.isolation"GT; ReadC /
LT;属性名称="query.substitutions"GT;真1假0,是"Y",没有"N' /
LT ;映射大会="模式"/ GT;
生产数据库配置文件NBSP
LT XML版本="1.0"编码="UTF -"GT;
的xmlns ="瓮:NHibernate的配置2.2"?GT ;
LT;会话工厂的名称="生产"G​​T;
LT;属性名称="方言"GT; NHibernate.Dialect.MsSql2005D /
LT;财产 - ;
LT;财产 - ;
LT的属性名称="connection.connection_string"GT,数据源的初始目录=生产; UID =用户; PWD = PWD; LT; /
LT属性名称="connection.isolation"GT; ReadC /
LT;属性名称="query.substitutions"GT;真1假0,是"Y",没有"N' /
LT映射大会="模式"/ GT;
配置文件(web应用config或app.config)中
LT; NHibernateS
LT; sessionF
LT; clearFactories / GT
LT; SessionFactory的名字="支持"factoryConfig ="C:Support.config"isTransactional ="真" / GT
LT; SessionFactory的名字="生产"factoryConfig ="C:\ Production.config"isTransactional ="真正的"/ GT {BR
LT / sessionF
</ NHibernateS
类是在从生产数据库中的对象的引用的支持数据库的持久化类。 NBSP
LT; 命名空间模型 {
[Serializable接口()]
公共一流的支持
私人的Guid _id = Guid.E {BR }
私有String _name = String.E
私人生产_ {BR }
公共虚拟GUID ID
公共虚拟的字符串
得到{返回_}
集合{_name =值;} {BR }
/ /从其他DB {BR类}
公共虚拟生产的生产
得到{返回_}
NBSP ;集{_production =值;}
NHibernate的映射:
LT XML版本="1.0"编码="UTF - 8"GT;
LT; Hibernate的映射的xmlns =? "金塔:NHibernate的映射- 2.2"命名空间"模型"大会"模型"GT
LT类的名称="支持"表="TestTable"GT
LT; ID名称="身份证"GT
LT;生成器类="b"/>
NBSP ; - ;
LT属性名称="名称"/ GT
LT;多到一个名称="生产"
类="生产"访问="field.camelcase下划线"栏="ProductionId"GT,LT; /到
LT / classgt
类是在生产DB的持久化类
LT; 命名空间模型 {
[Serializable接口()]
公共一流的生产
私有String _activati&#8203;&#8203;onKey = string.E
公共虚拟INT ID
NBSP公共虚拟字符串Activati&#8203;&#8203;onKey
得到回报_activati&#8203;&#8203;onK}
集合{_activati&#8203;&#8203;onKey =值;}
NHibernate的映射文件:{BR }
LT XML版本="1.0"编码="UTF - 8"GT;
LT Hibernate的映射的xmlns =?"金塔:NHibernate的映射2.2"命名空间"模型"大会="型号"GT;
LT类的名称="生产"表="生产"G&#8203;&#8203;T;
NBSP ; LT; ID名称="id"列="id"类型="Int32的"GT;
LT;发电机类="本土化"/>
LT属性名称="Activati&#8203;&#8203;onKey"列="ACTIVATION_KEY"/>
BR}谢谢。 NBSP
LT;科类="ForumMod"GT;上周五修改,2008年的12点47 PMlt 4月25日; / 评论会员:
时间:喜迈克尔,
我解决这种情况的方法是有一个工厂对象的负荷和结合在一起的对象。所以工厂将装载支持,那就负荷生产,那就重视生产的支持对象和支持的映射,将排除任何引用生产。由于再也没有出现过很多次,我需要这个,我没有继续从一个数据库到另一个延迟加载。你觉得这可能是一个适当的解决方案,以及为您吗?它迫使你做出某种程度的DB faciliation在您的域名,但没有太多如果它是一个孤立的事件。
您可能也想尝试一下NHibernate的论坛上看到,如果其他人有这个运气。
比利评论会员:
时间:而快速反应和梦幻般的文章。比利
我试图避免任何DB在所有域(如果可能的话POCO类)的工作。你有任何参考代码共享?
在目前的框架的方式来使用一个会话连接多个数据库的同一个域组件? 评论会员:
时间:只要数据块相同的SQL Server,那么你就应该能够改变数据库名称为每个映射文件,因为它们可以共享相同的会话工厂。 (我没有尝试这样做,但我的理解。)如果他们是在单独的服务器上,那么他们将需要单独的会话工厂。
工厂,你仍然能够工作的POCO的简单地传递IObject1Dao和IObject2Dao工厂的构造。这样,你可以单元测试与嘲笑的DAO工厂和注入控制器/主持人/服务层/代码隐藏。 DAO的依赖关系
比利评论会员:
时间:感谢一切比利。我发现了一个由hectorjcruz的文章,我会尽量在周末出来。 评论会员:
时间:?你能列出该文章的URL
谢谢!比利评论会员:
时间:要求。它看起来像你有回应这个讨论在过去
再次感谢您的帮助。 评论会员:
时间:比利,它看起来,至少从works.
授予我做了什么检索一个简单的对象以外的一个粗略的测试,但它的成功没有少 NBSP 我做的是使用的数据库的一个会议的诗句2和使用上的映射架构属性和删除数据库,从connection_string
感谢所有帮助。
LT; NHibernateS
LT; sessionF
LT; clearFactories / GT;
LT; SessionFactory的名字="支持" factoryConfig ="C:\ Support.config"isTransactional ="真正的"/ GT;
LT / sessionF
LT / NHibernateS
Support.config库:
LT XML版本="1.0"编码="UTF - 8"GT;
LT;休眠 - ;的xmlns ="金塔:NHibernate的配置2.2"GT;
LT;会话工厂的名称="Load.Support"GT;
NBSP ; - ;
LT;属性名称="方言"GT; NHibernate.Dialect.MsSql2005D /
LT;财产 - ;
LT;财产 - ;
LT属性名称="connection.connection_string"GT;数据源=. \ SQL2005; UID =用户; PWD = PWD;!</
LT;属性名称="connection.isolation"GT; ReadC /
LT属性名称="query.substitutions"GT;真1假0,是"Y",没有"N&#39; /
LT;! - HBM映射文件 - >
LT;映射大会="模型"/ GT;
映射为类即将到来的生产数据库
LT;?XML版本="1.0"编码= "UTF - 8"GT;
LT; Hibernate的映射的xmlns ="瓮:NHibernate的映射2.2"命名空间="模式"大会="标准"模式="Production.dbo"GT;
LT;类名="生产"表="生产"G&#8203;&#8203;T
LT; ID名称="ROWID"列="的ROWID"="Int32的"GT;
LT;生成器类="本土"/ GT; { BR}
LT;属性名称="Activati&#8203;&#8203;onKey"列="ACTIVATION_KEY"/>
支持数据库类的映射。 NBSP
LT XML版本="1.0"编码="UTF -"GT;
LT; Hibernate的映射的xmlns ="瓮:NHibernate的映射2.2"?命名空间="模型"大会="标准"模式="Support.dbo"GT;
LT类的名称="支持"表="支持"GT;
LT; ID名称="身份证"GT;
LT;发电机类="b"/>
LT属性名称="名称"/ GT;
LT;许多到一个名字="生产"
列="ProductionId"GT,LT; /多到
LT; /休眠 NBSP
LT;科类="ForumMod"GT;周二修改, PMlt 4月29日; / 评论会员:
时间:这是伟大的... ...为感谢张贴你是如何得到它的工作的一个很好的例子!
比利麦卡弗蒂评论会员:
时间:您的欢迎,我很欣赏的对话,文章和您提供额外的帮助
有一件事我是DB的名称有太多部分跑{BR。 }
例如:xxx.xxx.xxx.xxx.dbo会造成问题的名称只能有3段,或至少是我运行到。 评论会员:
时间:另外一个注意,
在NHibernate的配置,你可以定义数据库之一DEFAULT_SCHEMA财产,并删除在使用该数&#8203;&#8203;据库的映射中的schema声明。 评论会员:
时间:负这种方法的产品,至少在某些映射你把映射到架构的诗句配置element.
它可能是一个问题,从测试/生产安装。 评论会员:
时间:的方式来解决突出的问题是创造不同的映射组件,并定义哪些是使用NHibernate的配置
对这个问题的,需要注意的是重复的,除了架构属性和关联到这个问题的可能的错误映射文件。 评论会员:
时间:条例草案",
出色的工作,真的很感谢为NHibernate的企业样本。当我试图申请2个数据库(Northwind和pubs),我得到了"项目已被添加"的错误,这里是我的配置设置:************************************************** ******************{ BR}web.config中:LT; nhibernateS
LT - 列出每一个会话工厂将需要;事务管理和闭幕会议将管理与开放会议在视图模块 - GT;
LT; sessionF LT; clearFactories / GT; LT; SessionFactory的名字="北风" isTransactional =""/> LT; SessionFactory的名字="酒吧" isTransactional =""/>
LT / sessionF
LT / nhibernateS ************************************************** **********{ BR}config文件夹中包含:
CastleComponents.config NorthwindNHibernate.config PubsNHibernate.config ************************************************** ***********{ BR}CastleComponents.config包含:LT;
LT;组件ID ="primaryDaoFactory"
键入="EnterpriseSample.Data.NHibernateDaoFactory,EnterpriseSample.Data"
服务="EnterpriseSample.Core.DataInterfaces.IDaoFactory,EnterpriseSample.Core"GT
LT / LT / ************************************************** *************{ BR}NorthwindNHibernate.config包含:LT;休眠配置的xmlns ="金塔:NHibernate的配置2.2"GT;
LT;会话工厂的名称="北风"GT;
LT;属性名称="方言"GT; NHibernate.Dialect.MsSql2005D /
LT;属性名称="connection.provider"GT; NHibernate.Connection.DriverConnectionP / &#160
LT;属性名称="connection.driver_class"GT; NHibernate.Driver.SqlClientD /
LT;属性名称="connection.connection_string"GT;数据源=(本地); DATABASE =北风,用户ID = SA;密码=密码; LT /
LT;属性名称="connection.isolation"GT; ReadC /
LT;属性名="DEFAULT_SCHEMA"GT; Northwind. /
LT;映射大会"EnterpriseSample.Core"/ GT;
LT; /会议 LT /休眠 ************************************************** ************{ BR}LT;休眠配置的xmlns ="金塔:NHibernate的配置2.2"GT;
LT;会话工厂的名称="酒吧"GT;
LT;属性名称="方言"GT; NHibernate.Dialect.MsSql2005D /
LT;属性名称="connection.provider"GT; NHibernate.Connection.DriverConnectionP /
LT;属性名称="connection.driver_class"GT; NHibernate.Driver.SqlClientD /
LT;属性名称="connection.connection_string"GT;数据源=(本地); DATABASE =酒吧;用户ID = SA密码=密码; LT /
LT;属性名称="connection.isolation"GT; ReadC /
LT;属性名="DEFAULT_SCHEMA"GT; pubs. /
LT;映射大会"EnterpriseSample.Core"/ GT;
LT; /会议 LT /休眠 ************************************************** **********{ BR}
"/ EnterpriseSample.Web"应用程序中的服务器错误。-------------------------------------------------- ------------------------------{ BR}
已添加项。在字典中的键:"sessionFactoryConfigPath"关键是补充说:"sessionFactoryConfigPath&#39;说明:执行当前Web请求期间,出现未处理的异常。有关该错误以及代码中获取更多信息,请检查堆栈跟踪。
异常详细信息:System.ArgumentException:项目已添加。在字典中的键:"sessionFactoryConfigPath"关键是补充说:"sessionFactoryConfigPath&#39;
第37行:/ /作为参数提供"XmlInterpreter"告诉温莎第38行:/ / web.config中寻找任何必要的配置第39行:windsorContainer =新WindsorContainer(新XmlInterpreter ());{ BR}行40:} 第41行:
源文件:行:39
************************************************** ********************************************{ BR}
我认为这个问题的CastleComponents.config。你知道是什么问题?你有多个数据库的例子来说明如何配置? 如何动态通过"sessionFactoryConfigPath"?
非常感谢您。 评论会员:
时间:林,
这里有一个改变我的配置的例子...
Web.config中:
<?XML版本="1.0"GT;LT; LT; configS LT;节名称="nhibernateSettings"类型="MyReusableProject.Data.NHibernateSession.OpenSessionInViewSection,MyReusableProject.Data"/ GT; LT / configS
LT; nhibernateS LT - 列出每一个会话工厂将需要;事务管理和闭幕会议将管理与开放会议在视图模块 - GT;LT; sessionF LT; clearFactories / GT;
LT SessionFactory的名字="DB1"factoryConfigPath ="C:\ MyApp.Web \ CONFIG \ Db1NHibernate.config"isTransactional ="真正的"/ GT; LT SessionFactory的名字="DB2"factoryConfigPath ="C:\ MyApp.Web \ CONFIG \ Db2NHibernate.config"isTransactional ="假"/ GT;LT / sessionF LT / nhibernateS
在Db1NHibernate.config:
LT;?XML版本="1.0"编码="UTF -"GT; LT; Hibernate的配置的xmlns ="瓮:NHibernate的配置2.0"GT
LT;会话工厂的名称="国际化学品安全方案"GT;LT,物业LT;属性名称="hibernate.dialect"GT; NHibernate.Dialect.MsSql2000D / LT;属性名称="hibernate.connection.driver_class"GT; NHibernate.Driver.SqlClientD / LT;属性名称="hibernate.connection.connection_string"GT;数据源= MyDbS DATABASE = mydb的用户ID = MyUserName的;密码输入 LT / LT;属性名称="hibernate.connection.isolation"GT; ReadC / LT;属性名="hibernate.default_schema"GT; MyDb. / LT,物业
希望这有助于!
-------------------------------------------------- ------------------------------{ BR}
说明:执行当前Web请求期间,出现未处理的异常。有关该错误以及代码中获取更多信息,请检查堆栈跟踪。
非常感谢您。
&桌面&网页开发&移动开发&数据库&多媒体&编程语言&平台,框架和库&编程通用&图形/设计&开发周期&一般阅读&第三方产品&作者资源&其他
快速解答标签
价值作最多

我要回帖

更多关于 newmacbook性能怎么样 的文章

 

随机推荐