📄 subclassbinder.cs
字号:
using System.Xml;
using NHibernate.Mapping;
using NHibernate.Persister.Entity;
namespace NHibernate.Cfg.XmlHbmBinding
{
public class SubclassBinder : ClassBinder
{
public SubclassBinder(Binder parent, XmlNamespaceManager namespaceManager, Dialect.Dialect dialect)
: base(parent, namespaceManager, dialect)
{
}
public SubclassBinder(ClassBinder parent)
: base(parent)
{
}
public void Bind(XmlNode node)
{
PersistentClass superModel = GetSuperclass(node);
HandleSubclass(superModel, node);
}
public void HandleSubclass(PersistentClass model, XmlNode subnode)
{
Subclass subclass = new SingleTableSubclass(model);
BindClass(subnode, subclass);
if (subclass.EntityPersisterClass == null)
subclass.RootClazz.EntityPersisterClass = typeof(SingleTableEntityPersister);
log.InfoFormat("Mapping subclass: {0} -> {1}", subclass.EntityName, subclass.Table.Name);
// properties
PropertiesFromXML(subnode, subclass);
model.AddSubclass(subclass);
mappings.AddClass(subclass);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -