NHibernate 结果对于 ClassMap 是空的,但对于原始 SQL

NHibernate results are empty with ClassMap, but not with raw SQL

我正在使用 NHibernate 设置一个项目,但遇到了问题。

当我尝试这样做时:

public Person GetById(int id)
        {
            using (var unitOfWork = new UnitOfWork(_nHibernateFactory.GetFactory()))
            {
                var result = unitOfWork.CurrentSession.CreateSQLQuery("SELECT * FROM [TABLENAME]").List();

            }

        }

我得到了很好的结果,我可以查询我的数据。

然而,当我有这个 ClassMap:

 public class PersonMap:ClassMap<Person>
    {
        public PersonMap()
        {
            Table("TABLENAME");
            Id(p => p.Id);
            Map(p => p.Name);
        }
    }

而我运行:

 public Person GetById(int id)
        {
            using (var unitOfWork = new UnitOfWork(_nHibernateFactory.GetFactory()))
            {
                var result = unitOfWork.CurrentSession.Query<Person>().ToList();
        }

结果为空,尽管它们看起来应该相同 table(我已经交叉检查 table 名称相同)。

有什么想法吗?

您必须将映射文件添加到您的 Fluent nHibernate 配置中。看这里:https://github.com/jagregory/fluent-nhibernate/wiki/Fluent-configuration