Fluent NHibernate,关于代码设计的问题

本文关键字:问题 代码 NHibernate 于代码 Fluent | 更新日期: 2023-09-27 18:15:10

大家好,我是一个刚接触Fluent NHibernate的人。

让我们想象一下,我们有很多类

ClassA
ClassB
ClassC

创建schema后,我想要得到一个创建表的列表。

例如:

打开form ->有一个表的名称,当我们点击每个表时,我们从这个表中获得记录。

我怎样才能做到这一点?有更便宜的方法吗?不经过思考就能做出来吗?(解析所有类,并获取其名称)

Fluent NHibernate,关于代码设计的问题

nhibernate内置支持获取所有映射实体及其表的名称。代码可能像这样:

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
}