我正在学习如何使用SQLite数据库在C#中使用NHibernate进行映射的示例和讲座。到目前为止,我有:
hibernate.cfg.xml中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="hibernate-configuration"
type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.SQLite20Driver</property>
<property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
<property name='proxyfactory.factory_class'>NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<property name="query.substitutions">true=1;false=0</property>
<property name="show_sql">false</property>
</session-factory>
</hibernate-configuration>
</configuration>
FavoritePage.cs
namespace Example
{
public class FavoritePage
{
private int _id;
private string _name;
private string _website;
public int ID
{
get { return _id; }
set { _id = value; }
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public string Website
{
get { return _website; }
set { _website = value; }
}
public FavoritePage()
{ }
public FavoritePage(String inName, String inWebsite)
{
Name = inName;
Website = inWebsite;
}
}
}
FavoritePage.hbm.xml (签名为嵌入式资源)
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true">
<class name="Example.FavoritePage, Example" lazy="false">
<id name="_id" access="field">
<generator class="native" />
</id>
<property name="_name" access="field" column="name"/>
<property name="_website" access="field" column="website"/>
</class>
</hibernate-mapping>
和 FavoritePageRepository.cs
namespace Example
{
public class FavoritePagesRepository
{
static ISession OpenSession()
{
Configuration c = new Configuration();
c.AddAssembly(Assembly.GetCallingAssembly());
ISessionFactory f = c.BuildSessionFactory();
return f.OpenSession();
}
public static void addFavoritePage(FavoritePage favoritePage)
{
using (ISession session = OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(favoritePage);
transaction.Commit();
}
}
}
}
}
执行行c.AddAssembly(Assembly.GetCallingAssembly());
时抛出异常,说:无法编译映射文档:Example.FavoritePage.hbm.xml
。有人可以告诉我在哪里弄错了吗?