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 仅一张表 的相关文章

  • Fluent NHibernate 一对一映射

    我很难利用 Fluent NHibernate 的 HasOne 映射 基本上 A 类在 B 类中可以有匹配的 只有一条或没有 记录 请帮助定义关系的 AMap 和 BMap 类 谢谢 public class A public virtu
  • 领域模型可以知道存储库吗?

    可能对于某些域逻辑实现实体需要访问存储库以更新 删除自身或任何相关实体 这听起来对吗 不 不是 至少对于标有 的问题 领域驱动设计 标签 当然 Active Record 模式有权在某些系统中生存 并且有些人发现强耦合很有用 但在 DDD
  • Get 和 Load 之间的区别

    有什么区别Get
  • 寻找领域事件的例子

    有谁知道在哪里可以找到域事件实现的示例代码 如乌迪 达汉 http www udidahan com in 领域事件 救赎 http www udidahan com 2009 06 14 domain events salvation 在
  • 自定义字符串查询操作的 Linq to NHibernate 可扩展性?

    我希望能够在 NHibernate Linq 表达式中使用自定义字符串查询 举例来说 这只是一个例子 我希望能够选择包含属性的实体 该属性是特定字符串的字谜 var myEntities EntityRepository AllEntiti
  • 从实体获取单列

    如何从查询中获取单个列而不是整个对象 我可以这样做来获取整个对象 但我想要的只是名称 IList
  • 为什么我的 NHibernate 包集合没有动态设置子项的“父 ID”?

    我有一个新对象 其中包含一些作为 IList 属性的新对象的集合 我通过sql探查器看到正在执行两个插入查询 一个用于父级 它具有新的guid id 另一个用于子级 但是 引用父级的子级上的外键是一个空guid 这是我在父级上的映射
  • Nhibernate:连接表并从其他表获取单列

    我有以下表格 create table Users Id uniqueidentifier primary key InfoId uniqueidentifier not null unique Password nvarchar 255
  • 在下面的模型中,地址不应该是值对象吗?

    From 值对象如何存储在数据库中 https stackoverflow com questions 679005 how are value objects stored in the database 假设公司和个人都有相同的邮件地址
  • 如何判断一个引用的对象是否可以删除?

    我有一个名为 Customer 的对象 它将在其他表中用作外键 问题是我想知道是否可以删除 客户 即 它没有在任何其他表中引用 Nhibernate 可以做到这一点吗 你所要求的是找到的存在CustomerPK值在引用表FK列中 有很多方法
  • NHibernate - CreateCriteria 与 CreateAlias

    假设以下场景 class Project public Job Job class Job public Name 假设我想使用 Criteria API 搜索其 Job 名称为 sumthing 的所有项目 我可以使用 CreateAli
  • NHibernate - 无法执行查询 - 输入字符串的格式不正确

    我已经为此摸不着头脑有一段时间了 我不知道出了什么问题 概述 我的 MySQL 数据库中有两个表 两者都正确映射到数据库 我可以加载数据 并且我能够查询一个表 但不能查询另一个表 我研究过的解决方案 表和 C 代码之间的类型转换问题 映射问
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 流畅的 Nhibernate AutoMapping 继承和忽略抽象属性

    我有一个已成功映射的继承结构 产品 基础 PdfProduct 继承自Product 和OtherProduct 继承自Product 这些工作正常 我之前用 hbm xml 文件做过类似的事情 在上一个项目中 当我试图找出产品是什么类型时
  • NHibernate 和 DateTime 映射的问题

    我在查询时遇到问题 我在给定的范围内选择记录 时间跨度 我从中选择的列的类型为日期 我已经映射了这个 列作为 DateTime 属性 查询可以工作 但速度很慢 生成的查询如下所示 由NH分析器 http nhprof com select
  • 急于获取引用时重复(多对一)

    首先 是的 我正在使用 DistinctRootEntityResultTransformer 我有以下 Fluent NHibernate 映射 public FirstObjectMap Id x gt x Id HasMany
  • CQRS - 何时发送确认消息?

    Example 业务规则规定 客户下订单后应收到确认消息 电子邮件或类似消息 可以说 一个NewOrderRegisteredEvent从域调度并由发送确认消息的事件侦听器拾取 完成此操作后 其他一些事件处理程序会引发异常或出现其他问题 并
  • Sql 2008 文件流与 NHibernate

    我试图在 sql server 2008 中使用 Filestream 来存储用户上传的图像 我的问题是NHibernate不会出错 但它也不会将数据保存到数据库中 没有创建记录 下面的 Image 类是一个自定义类 不要与 System
  • Breeze + NHibernate 多对一关系,避免指定关系键

    以下多对一映射正在运行 取自 NorthBreeze public partial class UserRole public virtual long ID get set public virtual long UserId get s
  • 我可以将 NHibernate 的 AdoNetTransactionFactory 与分布式事务一起使用吗?

    我正在处理一个与 NHibernate 和 WCF 服务中的分布式事务相关的奇怪问题 看NHibernate 和分布式事务导致 服务器无法恢复事务 的死锁 https stackoverflow com questions 8581956

随机推荐

  • 如果存在重复的模块名称,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