NHibernate:如何获取映射值?

Geo*_*uer 3 nhibernate

假设我有一个映射到数据库的类Customer,一切都很好.

现在假设我想在我的应用程序中检索NH知道Customer.FirstName映射到的列名.

我该怎么做?

Jam*_*Ide 5

您可以通过NHibernate.Cfg.Configuration以下方式访问数据库字段名:

// cfg is NHibernate.Cfg.Configuration
// You will have to provide the complete namespace for Customer
var persistentClass = cfg.GetClassMapping(typeof(Customer));
var property = persistentClass.GetProperty("FirstName");
var columnIterator = property.ColumnIterator;
Run Code Online (Sandbox Code Playgroud)

ColumnIterator物业返回IEnumerable<NHibernate.Mapping.ISelectable>.几乎在所有情况下,属性都映射到单个列,因此可以使用找到列名property.ColumnInterator.ElementAt(0).Text.