【问题标题】:Fluent NHibernate, questions about code designFluent NHibernate,关于代码设计的问题
【发布时间】:2014-07-28 16:51:57
【问题描述】:
您好,我是 Fluent NHibernate 的新手。
让我们想象一下,一个有很多类
A类
B类
C类
...
创建架构后,我想获取已创建表的列表。
例如:
打开表格 -> 有一个表格的名称,当我们点击每个表格时,我们会从该表格中获取记录。
我怎样才能做到这一点?有没有更便宜的方法?
有没有可能不经过反思就做出来? (解析所有类,并获取其名称)
【问题讨论】:
标签:
c#
winforms
nhibernate
fluent-nhibernate
【解决方案1】:
NHiberante 内置支持获取所有映射实体及其表的名称。代码可能如下所示:
ISessionFactory factory = ... // get your NH ISessionFactory;
// all mapped entities as dictionary
var allClassMetadata = factory.GetAllClassMetadata();
foreach (var meta in allClassMetadata)
{
var persister = meta.Value as NHibernate.Persister.Entity.AbstractEntityPersister;
var tableName = persister.TableName;
var entityName = persister.EntityType.Name;
...
// TODO what needed with this info
}