2

С учетом this example в качестве базового примера. Я создал приложение, но когда я запустил это приложение, получив следующую ошибку. недвижимостьОшибка при использовании NHibernate

The ProxyFactoryFactory was not configured. 

ИНИЦИАЛИЗИРУЙТЕ «proxyfactory.factory_class» секции конфигурации сеанса фабрики с одним из доступных поставщиков NHibernate.ByteCode. Пример: NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu Пример: NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle

Ниже приведен фрагмент кода я использую.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using NHibernate; 
using NHibernate.Cfg; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Configuration cfg = new Configuration(); 
     cfg.AddAssembly("NHibernate"); 


     ISessionFactory factory = cfg.BuildSessionFactory(); //getting error at this line 
     ISession session = factory.OpenSession(); 
     ITransaction transaction = session.BeginTransaction(); 
     User newUser = new User(); 
     newUser.Id = "joe_cool"; 
     newUser.UserName = "Joseph Cool"; 
     newUser.Password = "abc123"; 
     newUser.EmailAddress = "[email protected]"; 
     newUser.LastLogon = DateTime.Now; 

     // Tell NHibernate that this object should be saved 
     session.Save(newUser); 

     // commit all of the changes to the DB and close the ISession 
     transaction.Commit(); 
     session.Close(); 

    } 
} 
+0

Как выглядит ваш конфиг? –

+0

нормально мой конфиг выглядит ? XML версия = "1,0" кодировка = "UTF-8"?> <конфигурация> <раздел имя = "NHibernate" тип = "System.Configuration.NameValueSectionHandler, система, Version = 1.0.5000.0, Culture = нейтрально, PublicKeyToken = b77a5c561934e089" />

+0

<добавить ключ = "hibernate.connection.provider" значение = "NHibernate.Connection.DriverConnectionProvider" /> <добавить ключ =" hibernate.connection.connection_string» значение = "Server = локальный; Initial Catalog = NHibernate; Integrated Security = SSPI"/>

ответ

2

Возможно, вам не удалось установить свойство ProxyFactoryFactoryClass, прежде чем строить заводскую фабрику.

Что-то вроде:

Config.SetProperty(NHibernate.Cfg.Environment.ProxyFactoryFactoryClass, "NHibernate.ByteCode.Linfu.ProxyProxyFactory, NHibernate.Bytecode.Linfu"); 

Не забудьте включить DLL Линьфу в вашем проекте.

EDIT: это происходит из-за обновления ссылки на замок. Вы можете получить более подробную информацию здесь: http://nhforge.org/blogs/nhibernate/archive/2008/11/09/nh2-1-0-bytecode-providers.aspx

+0

где добавить эту строку .. Прошу прощения, если мой вопрос слишком глуп, но я новичок в Nhibernate, поэтому, пожалуйста, извините меня и ответьте на мои сомнения. –

+0

Я использую его перед созданием своего ISessionFactory, потому что мой проект был просто консольным приложением. Однако вы можете использовать его в файле web.config. NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu nandokakimoto

+0

Я использовал его в своем app.config, но такую ​​же ошибку ... –

Смежные вопросы