我在Visual Studio中有以下结构
Control (Solution)
AppDB (Project)
Classes (Folder)
Piece.cs
Mapping (Folder)
PieceMap.cs
我在运行时按照以下说明添加程序集图
Configuration hibernateConfiguration = new Configuration();
hibernateConfiguration.SetProperty("connection.connection_string", "server=(local);Data Source="+pRutaDB);
hibernateConfiguration.AddAssembly("AppDB.Mapping.PieceMap");
hibernateConfiguration = hibernateConfiguration.Configure();
NHibernate.ISessionFactory sessionFactory = hibernateConfiguration.BuildSessionFactory();
NHibernate.ISession session = sessionFactory.OpenSession();
NHibernate.ITransaction tr = session.BeginTransaction();
Piece p = new Piece();
p.name = "Test Piece";
pSession.SaveOrUpdate(p);
tr.Commit();
但是当tr.提交((指令到达,出现以下错误
Error: NHibernate.MappingException: Could not add assembly AppDb.Mapping.PieceMap ---> System.IO.FileNotFoundException
任何人都可以告诉我如何在运行时添加程序集?
谢谢!
编辑:使用指令,错误更改hibernateConfiguration.AddAssembly(typeof(GeometriaDB.Mapping.PieceMap).Assembly);
现在出现以下错误:
NHibernate.MappingException: No persister for: GeometriaDB.Clases.Proyecto
那么现在为什么会出现这个错误呢?
至少你应该在程序集名称中添加.dll:
hibernateConfiguration.AddAssembly("AppDB.Mapping.PieceMap.dll");
并且dll也应该在同一目录中,或者您应该显示程序集的完整路径。
您可以使用的另一种方法是:
hibernateConfiguration.AddAssembly(typeof(AppDB.Mapping.PieceMap.<and any class name>).Assembly);