nhibernate,无法解析属性 QueryOver 仅一张表

2024-03-08

我发现了十几个与我类似的问题,但没有一个能解决我的问题。

先感谢您

Ok,

我有这门课

public class User : IEntity
    {
        private int id;
        public virtual int Id { get { return id; } }


        private string email;

        public virtual string Email
        {
            get { return email; }
            //private set { email = value; }
        }

        private string password;

        public virtual string Password
        {
            get { return password; }
            //private set { password = value; }
        }

        private bool isActive;

        public virtual bool IsActive
        {
            get { return isActive; }
            //private set { isActive = value; }
        }

        private bool isRegistered;

        public virtual bool IsRegistered
        {
            get { return isRegistered; }
            //private set { isRegistered = value; }
        }

        private bool hasRequestedApplication;

        public virtual bool HasRequestedApplication
        {
            get { return hasRequestedApplication; }
            //private set { hasRequestedApplication = value; }
        }


        private ContactInfo contactInformation;

        public virtual ContactInfo ContactInformation
        {
            get { return contactInformation; }
            //private set { contactInformation = value; }
        }



        public User(string email)
        {
            this.email = email;
        }

        public User(string email, string password):this(email)
        {
            this.password = password;
        }

        public User()
        { }
}

这就是映射......

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Domain"
                 namespace="Domain.User" default-access="field">

  <class name="User" table="[User]">

    <id name="id" column="UserID">
      <generator class="identity" />
    </id>
    <property name="email" column="Email" not-null="true"></property>
    <property name="password" column="HashedPassword" not-null="false"></property>
    <property name="isRegistered" column="IsRegistered" not-null="true"></property>
    <property name="isActive" column="IsActive" not-null="true"></property>
    <property name="hasRequestedApplication" column="HasRequestedApplication" not-null="true"></property>

    <one-to-one name="contactInformation" class="Domain.User.ContactInfo"/>
  </class>
</hibernate-mapping>

我就是这么称呼它的

 public class UserRepository: IUserRepository
    {
        Func<ISession> session;

        public UserRepository(Func<ISession> _session)
        {
            session = _session;
        }

        [Transaction]
        public User FindByEmail(string emailAddress)
        {
            using (var tx = session())
            {
                return tx.QueryOver<User>().Where(u => u.Email == emailAddress).SingleOrDefault();
            }
        }
}

错误... {“无法解析属性:电子邮件地址:Domain.User.User”}

堆栈跟踪...

在 NHibernate.Persister.Entity.AbstractPropertyMapping.ToType(String propertyName) 在NHibernate.Persister.Entity.AbstractEntityPersister.GetSubclassPropertyTableNumber(字符串propertyPath) 在NHibernate.Persister.Entity.BasicEntityPropertyMapping.ToColumns(字符串别名,字符串属性名称) 在NHibernate.Persister.Entity.AbstractEntityPersister.ToColumns(字符串别名,字符串属性名称) 在 NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetColumns(ICriteria subcriteria, String propertyName) 在NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetColumnsUsingProjection(ICriteria subcriteria,字符串propertyName) 在NHibernate.Criterion.CriterionUtil.GetColumnNamesUsingPropertyName(ICriteriaQuery criteriaQuery,ICriteria条件,字符串propertyName,对象值,ICriterion条件) 在NHibernate.Criterion.SimpleExpression.ToSqlString(ICriteria标准,ICriteriaQuery criteriaQuery,IDictionary2 enabledFilters) at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetWhereCondition(IDictionary2个启用的过滤器) 在 NHibernate.Loader.Criteria.CriteriaJoinWalker..ctor(IOouterJoinLoadable 持久化器、CriteriaQueryTranslator 转换器、ISessionFactoryImplementor 工厂、ICriteria 标准、String rootEntityName、IDictionary2 enabledFilters) at NHibernate.Loader.Criteria.CriteriaLoader..ctor(IOuterJoinLoadable persister, ISessionFactoryImplementor factory, CriteriaImpl rootCriteria, String rootEntityName, IDictionary2个启用的过滤器) 在NHibernate.Impl.SessionImpl.List(CriteriaImpl标准,IList结果) 在NHibernate.Impl.CriteriaImpl.List(IList结果) 在 NHibernate.Impl.CriteriaImpl.UniqueResultT 在 NHibernate.Criterion.QueryOver1.SingleOrDefault() at NHibernate.Criterion.QueryOver1.NHibernate.IQueryOver.SingleOrDefault() 在 E:\Projects\DataObjects.NHibernate\UserRepository.cs 中的 DataObjects.NHibernate.UserRepository.FindByEmail(String emailAddress):第 26 行 在 Castle.Proxies.Invoices.IUserRepository_FindByEmail.InvokeMethodOnTarget() 在 Castle.DynamicProxy.AbstractInspiration.Proceed() 在 d:\BuildAgent-03\work\9844bdf039249947\src\Castle.Facilities.AutoTx\TransactionInterceptor.cs 中的 Castle.Facilities.AutoTx.TransactionInterceptor.SynchronizedCase(IInspiration 调用,ITransaction 事务):第 137 行

EDIT:

好的。一定程度上解决了。我在映射中将所有属性和组件名称更改为大写。 代替...

<property name="email" column="emailaddress" />

将其设置为...

<property name="Email" column="emailaddress" />

它有效。现在,这是 NHibernate 通过字段填充/读取我的属性的保证吗?但愿如此。


这应该有帮助:将设置更改为不同的get and set

<hibernate-mapping ... default-access="field.camelcase">

并映射属性:

<property name="Email" column="emailaddress" />

NHibernate 将使用字段来设置,使用属性来获取。此查询结束:

return tx.QueryOver<User>()    
  .Where(u => u.Email == emailAddress)  
  .SingleOrDefault();

...现在可以工作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nhibernate,无法解析属性 QueryOver 仅一张表 的相关文章

  • 是否可以在不改变作为框架一部分的 DDD 模型的情况下使用 NHibernate

    我挖掘了很多关于DDD方法 无处不在的语言 聚合 存储库等 我认为 与我读到的很多内容相反 实体应该有行为而不是不可知论 我看到的所有例子都倾向于呈现实体虚拟自动属性 and an 空构造函数 受保护或最糟糕的是公开 就是这样 我认为这种对
  • NHibernate HQL 相当于 T-SQL 的 TOP 关键字

    NHibernate HQL 相当于 T SQL 的 TOP 关键字是什么 另外 用非 HQL 方式说 给我一门课的前 15 个 是什么意思 在 HQL 中这实际上非常简单 var top15 session CreateQuery fro
  • 在 nhibernate 标准中使用内置的 sql“转换”函数

    我想利用 SQL Server 2008 中的 Convert 函数 以便可以在 DateTime 列上进行搜索 建议的 SQL 看起来像这样 SELECT list of fields FROM aTable WHERE CONVERT
  • 无法转换类型为“NHibernate.Collection.Generic.PersistentGenericBag”的对象

    public List
  • 最好的 NHibernate 二级缓存提供程序是什么?

    我见过有很多这样的 NCache Velocity 等等 但我还没有找到比较它们的表格 考虑以下标准什么是最好的 容易明白 最近正在维护中 是免费的或者有足够好的免费版本 Works 我无法说出什么是最好的或最差的 但我会分享我使用 NCa
  • 关于存储库的领域驱动设计问题

    我正在尝试实现 DDD 因此我创建了以下类 用户 域模型 UserRepository 管理对象的中央工厂 UserMapper UserDbTable 映射应用程序功能并提供 CRUD 实现的映射器 我的第一个问题是 当模型需要与持久层通
  • 如何告诉 NHibernate 始终强制引用标识符?

    正如标题 我如何一劳永逸地告诉NHibernate 所有表名和列名都将在它生成的SQL 中引用 您还可以尝试 SchemaMetadataUpdater QuoteTableAndColumns configuration
  • NHibernate HiLo 生成和 SQL 2005/8 模式

    我手头上有一个问题 我花了几天时间寻找答案但无济于事 我们正在使用 HiLo Id 生成 一切似乎都工作正常 只要实体表处于同一架构中作为 hibernate unique key 表 表结构非常简单 我的 hi 值表在数据库中为 dbo
  • 尽管 HQL 获取,Nhibernate 仍然生成代理

    我有以下 HQL 语句 select distinct t from TaskEntity as inner join fetch t Case as c inner join fetch c Client as client inner
  • DDD 哪个是根聚合根?

    许多诸如订单和订单行之类的示例都是有意义的 例如 Order is an AR其中包含OrderLines Customer is an AR其中包含Orders 问题是 什么是AR其中包含Customer 我想它可能是 商店 之类的东西
  • 如何在 Nhibernate 中进行版本控制?

    我不敢相信让别人向我展示一个简单的工作示例是如此困难 这让我相信每个人都只能说得好像他们知道如何去做 但实际上他们并不知道 我将帖子缩短为仅我想要示例执行的操作 也许帖子太长了 吓跑了人们 为了获得这个赏金 我正在寻找一个可以在 VS 20
  • NHibernate:QueryOver<> 帮助

    我刚刚开始使用 NHibernate 在运行更复杂的查询时遇到了麻烦 我有带有附加标签列表的实体 用户将提供两个标签列表 包括和排除 我需要找到具有所有包含标签的所有实体 并排除在排除列表中具有任何标签的任何实体 下面是我的第一个努力 这显
  • NHibernate双向一对一映射问题

    当尝试在 NHibernate 中创建双向一对一映射时 我发现我无法递归地获得对象的引用 例如 假设我之间有一对一的关系Person and Address 然后执行以下代码后 class Person public Address Add
  • NHibernate、Fluent NHibernate 和 Iesi.Collection 的问题。接下来你会尝试什么?

    我对 NHibernate 非常陌生 所以如果我在这里遗漏了一些琐碎的事情 我深表歉意 我目前正在阅读 packtpub 出版的一本名为 NHibernate 3 Beginners Guide 的书 我基本上都是按照书中的指示进行的 当我
  • Fluent NHibernate 中的 NHibernate 配置属性

    我正在考虑在我的项目中使用 Fluent NHibernate 但我还没有找到任何关于 FH 是否支持 NHibernate 设置 例如 show sql 和prepare sql 的文档 我可以在紧要关头没有 show sql 生活 但p
  • 服务层设计。将事物放入服务层的原因

    我有一些与设计相关的问题 should service layer interfaces居住在一个domain layer 例如user service 将代码部分移动到单独层的主要原因是什么 should service layer居住在
  • NHibernate、数据绑定到 DataGridView、延迟加载和会话管理 - 需要建议

    我的主应用程序窗体 WinForms 有一个 DataGridView 它使用 DataBinding 和 Fluent NHibernate 显示 SQLite 数据库中的数据 该表单在应用程序运行的整个过程中都是打开的 出于性能原因 我
  • 在 nHibernate 关系中使用实体的 Lite 版本?

    在某些情况下 出于性能原因 创建一个实体的轻量级版本 指向同一个表 但映射的列较少 这是一个好主意吗 例如 如果我有一个包含 50 列的联系人表 并且在一些相关实体中 我可能对 FirstName 和 LastName 属性感兴趣 那么创建
  • 使用无状态会话延迟查找字典值

    在我的应用程序中 我设置了一个三元字典映射 以便对于给定用户 我可以检索属于该用户的对象的每个实例的 设置 也就是说 我有类似的东西 public class User public virtual IDictionary
  • 使用实体框架时是否应该使用部分类作为业务层?

    我正在开发一个使用实体框架的项目 使用EF生成的类的部分类作为业务层可以吗 我开始认为这就是 EF 的用途 我尝试使用 DTO 模式 很快意识到我只是创建了一堆映射类 这重复了我的工作 而且还导致更多的维护工作和额外的层 我想使用自我跟踪实

随机推荐

  • 如果存在重复的模块名称,Python 指定从哪个模块导入?

    相关 从相对路径导入模块 https stackoverflow com questions 279237 import a module from a relative path dirA A py B py dirB B py A py
  • .NET MVC 5 中的 Angular 6 应用程序,角度路由不起作用

    我已将 Angular 6 应用程序嵌入到现有的 NET MVC 5 应用程序中 我在 MVC 应用程序 RouteConfig cs 中添加了一条指向 Home Index 的后备路由 因此 未知 路由将传递到 Angular 应用程序的
  • 什么是 STUN?它是否需要端口转发服务器?

    我对没有基础服务器的 p2p 通信进行了一些研究 并通过了 STUN 据我所知 STUN 是 NAT 打孔 的一种方式 不需要对等方进行端口转发即可连接 这是正确的吗 打孔到底是什么意思 这一切看起来都很脆弱 因为如果不需要端口转发 它就会
  • 自制软件安装时出现 OSX 代理问题

    我尝试对我的问题进行所需的搜索 但没有得到我需要的答案 目标 安装自制程序并使用自制程序 我正在使用的操作系统 OS X El Capitan 以下是我的问题 我是 OS X 和 Homebrew 的新手 我正在尝试使用以下命令从我的家庭网
  • Google App Engine:“没有名为 google.appengine.ext 的模块”

    我在测试我的 main py GAE 应用程序时收到此错误 Traceback most recent call last File main py line 4 in
  • WebGL/OpenGL:根据设备方向旋转相机

    我有一个 Web 应用程序 我试图在 3D 空间中显示地图图像图块的平面 我希望无论设备如何旋转 平面始终保持水平 最终效果类似于这个航海罗盘演示 http people opera com richt release demos orie
  • 如何使 HA 代理保持活动状态

    在我的环境中 我有 2 个 Web 服务器 Apache 的 haproxy 负载平衡 这是我的 HA 代理配置 global log 127 0 0 1 local2 chroot var lib haproxy pidfile var
  • 在 C# 中对 dataGridView 列进行排序? (Windows窗体)

    我有一个从 sql 表绑定的 datagridview 在该 dv 中我有这些属性 Id Name 和 Price 当我将名称列的排序模式设置为自动并单击此列的标题时 我可以根据名称的第一个字母对此 dv 进行排序 这样我可以根据产品的第一
  • SoapUI 响应中出现“不理解“MustUnderstand”标头”错误

    我正在尝试使用 SoapUI 进行 Web 服务的自动化测试 当我从应自动进行测试的服务器发送请求时 我总是得到以下响应 Request Request Headers Authorization Basic Host domino aut
  • 页脚隐藏浮动导航 - 一旦浮动导航到达页脚,有什么方法可以向上滑动浮动导航吗?

    我正在尝试向侧边栏添加浮动导航 当你开始滚动后 我让 jquery 将导航浮动到顶部 它在顶部工作正常 但一旦到达底部 页脚就会隐藏导航 导航到达某个点后需要向上滚动 有什么解决办法吗
  • UITableViewCell 内的 UITextView - 如果不单击链接,则触摸通过

    我试图利用 UITextView 与 TableViewCell 内的数据检测器类型的优势 而 TableViewCell 本身是可点击的 唯一的问题是 我需要 UITextView 的链接可单击 因此 userInteractionEna
  • 未处理的异常会导致WCF服务崩溃吗?

    我想知道未处理的异常是否会导致WCF服务崩溃 我编写了以下程序 该程序显示 WCF 服务启动的线程中未处理的异常将使整个 WCF 服务崩溃 我的问题是 我想确认线程中未处理的异常 由WCF服务启动 是否会导致WCF崩溃 我的困惑是我认为 W
  • C - 转换为 2 补码

    我决定这样做 翻转数字 0 1 1 0 LSB 加 1 如果进位 则循环直到 array i 0 但我坚持最后一点 我怎么能在条件循环中这么说呢 您正在谈论扩展算术 大多数处理器都有每次加法运算的进位和溢出结果 但 C 不提供对它们的访问
  • AngularJS - 创建服务对象

    我认为这可能更多是关于 javascript 问题 而不是在 Angular 邮件列表中发帖 希望SO社区也能给予更快的回应 我正在尝试将数据封装在服务中并注入到控制器中 angular module myApp services ngRe
  • C++ 多线程服务器帮助

    我正在使用 boost asio 在 C 中开发多线程服务器 目前我遇到的一个设计问题涉及擦除连接 我有一个服务器实例 其中包含连接对象向量 这些连接接收我解析的命令 其中一个命令专门处理向我的向量中的所有连接发送数据 现在 当连接断开时
  • Google Sheets API:设置权限

    在我的 Java 应用程序中 我正在创建新的 Google 表格 如下所示 Sheets service new Sheets Builder GoogleNetHttpTransport newTrustedTransport JSON
  • 关闭 Windows Mobile 上的 GPRS 连接

    是否有可能在 Windows Mobile 上获取所有打开或缓存的 gprs 连接并以编程方式强制它们关闭 我一直在查看连接管理器 api 但似乎找不到执行此操作的方法 Regards Tony 连接管理器 http msdn micros
  • iOS 分发证书即将到期。我有什么选择?

    我当前的分销证书今天过期了 这意味着我的 AdHoc 和 AppStore 配置文件也都过期了 我有 2 个应用程序已经提交给 Apple 审核 1个正在等待审核 另一个正在 审核中 我似乎无法生成新的分发证书 因为没有选项 只能撤销或下载
  • 如何在基于文档的 macOS 应用程序中处理不同的文档类型?

    如何在一个 macOS 文档应用程序中处理两种不同的自定义文档类型 从 macOS Document App 模板开始 我定义了两种类型 它们也注册在 info plist 中 extension UTType static var tes
  • nhibernate,无法解析属性 QueryOver 仅一张表

    我发现了十几个与我类似的问题 但没有一个能解决我的问题 先感谢您 Ok 我有这门课 public class User IEntity private int id public virtual int Id get return id p