我做了一些研究,因为之前从未使用过nhibernate,我发现要将实体保存到数据库,我应该使用"SaveOrUpdate()"
所以我有以下内容:
Object myObject = new Object { someProperty="something" };
using (ISession session = NHibernateSessionFactoryManager.Factory.OpenSession())
{
session.SaveOrUpdate(myObject);
}
我必须在哪个地方指定我要保存的表,或者NHibernate是否从对象类型中指出了这个?
答案 0 :(得分:2)
如果查看ISession
界面,您会发现只有两种SaveOrUpdate
方法:
void SaveOrUpdate(object obj);
void SaveOrUpdate(string entityName, object obj);
您正在使用第一个,它使用您定义的映射将obj.GetType()
映射到表格。
如果您使用
,还有另一个使用entityName
的重载
持久化实体不一定必须在运行时表示为POCO类。 NHibernate还支持动态模型(在运行时使用Dictionaries的Dictionaries)。使用这种方法,您不会编写持久化类,只能编写映射文件。
在这些映射文件中,您必须定义实体名称。