Im делает проект с winforms C#. Этот проект состоит из:Настройка nHibernate для решения с несколькими проектами
alt text http://img139.imageshack.us/img139/2540/esquemaw.png
- Проект Клиент: Windows Forms, где пользователь будет вызывать операции CRUD;
- Серверный проект;
- Общий проект: Этот проект будет содержать модели (на изображении будет только элемент модели);
- Проект ListSingleton: Удаленный объект, который будет выполнять операции над моделями;
Im пытается использовать стиль 3 слоев, в которых клиент и сервер будет являться просмотров слой, то LISTSINGLETON будет контроллер уровня (где все объекты создаются) и COMMON проект модели ...
У меня уже есть все коммуникации, но теперь мне нужно работать над сохранением данных в базе данных mysql. Я пытался использовать nHibernate, но у меня проблемы.
Моя основная проблема заключается в том, как организовать мою конфигурацию спящего режима. - В каком проекте я сохраняю отображение? Общий проект?
В каком проекте я сохраняю конфигурационный файл 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? Altho я имел ссылку на общий проект в ListSingleton я получаю ошибку в addXml линии ...
- И когда у меня есть 2 проектов одна с моделями & отображения и другой, где плохое использование гибернации (это проект имеет ссылку на проект моделей), как я могу сделать «cfg.AddXmlFile (« User.hbm.xml »); Я продолжаю получать «Не могу настроить хранилище данных из файла User.hbm.xml» Когда я использую эту 2-ю структуру проекта.
Мое отображение является правильным, потому что я пытался с раствором одного проекта, и она работала: X
+1 И я хотел бы настаивать на ISessionFactory, это ДОЛЖНО быть синглом в вашем приложении, так как это чрезвычайно дорого для создания экземпляра. –
Я пытаюсь использовать стиль трех слоев, в котором клиент и серверы будут уровнем ** просмотров **, listSingleton будет уровнем ** контроллера ** (там, где созданы все объекты), а общий проект - это ** models layer ** ... Итак, с этой новой информацией вы думаете, что я должен сохранить файл конфигурации и создать Session @ Client? PS: Извините, я забыл добавить эту информацию к вопросу ... – Canastro
Не знаю, я никогда не делал ничего подобного. Я бы сделал это в слое, который отвечает за раздачу ISessions. ISession является сериализуемым, поэтому вы можете сделать это как на клиенте, так и на контроллере. –