我正在用C#winforms做一个项目。该项目由以下人员组成:
alt text http://img139.imageshack.us/img139/2540/esquemaw.png
我尝试使用3层样式,其中CLIENT和SERVER将是视图层,LISTSINGLETON将是控制器层(其中所有对象都是已创建),COMMON项目是模型层 ...
我已经完成了所有通信,但现在我需要处理mysql数据库中数据的持久性。我试图使用nHibernate,但我遇到了一些麻烦。
我的主要问题是如何组织我的hibernate配置。 - 我在哪个项目中保留映射?共同项目?
我在哪个项目中保留了hibernate配置文件(App.config)? ListSingleton项目?
我在哪个项目中执行此操作:
Configuration cfg = new Configuration();
cfg.AddXmlFile("Item.hbm.xml");
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
ITransaction transaction = session.BeginTransaction();
Item newItem = new Item("BLAA");
// Tell NHibernate that this object should be saved
session.Save(newItem);
// commit all of the changes to the DB and close the ISession
transaction.Commit();
session.Close();
在ListSingleton项目中?虽然我在ListSingleton中引用了Common Project,但我仍然在addXml行中出错...
我的映射是正确的,因为我尝试使用单项目解决方案并且它有效:X
答案 0 :(得分:2)
我在哪个项目中保留映射?共同项目?
是。映射文件应与模型位于同一项目中。
我在哪个项目中保留了hibernate配置文件(App.config)? ListSingleton项目?
在客户端项目中。我假设客户端项目将对象传递给ListSingleton,它将作用于它们。
我在哪个项目中执行此操作:
在客户端项目中。我想指出你应该只创建一次ISessionFactory。
答案 1 :(得分:0)
我找到了问题的答案
我在哪个项目中保留 映射?共同项目?
正如Jamie Ide所说,是的,它应该在模型层中。
我在哪个项目中保留 hibernate配置文件 (App.config中)? ListSingleton项目?
我在哪个项目中执行此操作:
这个配置文件和所有hibernate配置应该在控制器层中,所以它在ListSingleton项目中;
当我有2个项目时 模特&映射和另一个 生病的地方使用休眠(这个 项目有参考模型 项目),我该怎么做 “cfg.AddXmlFile(” User.hbm.xml “);”一世 继续保持“无法配置 来自文件User.hbm.xml的数据存储“何时 我使用这个2项目结构。
您应该将映射文件配置为嵌入式资源,如果属性较新,则应将其复制。