c# - 遇到 Nhibernate 和 ManyToOne 属性问题

标签 c# nhibernate nhibernate-mapping

我有一个具有多对一属性的类,定义如下:

[NHMA.ManyToOne(Name = "TypeOfEvent", ClassType = typeof(EventType), Column="EventTypeId")]
public virtual EventType TypeOfEvent {get; set;}

每次我尝试使用简单查询加载类(只加载数据库中的所有事件)时,我都会遇到以下异常:

NHibernate.HibernateException : Creating a proxy instance failed
----> System.Reflection.AmbiguousMatchException : Ambiguous match found.

Event 表有一个外键 (EventTypeId),它与 ​​EventType 表的主键 EventTypeId 相关。如果我将映射更改为 int 一切正常。

我意识到这可能是一件非常简单的事情,但谷歌搜索并没有帮助。帮助。请。

最佳答案

我认为您不需要在 ManyToOne 属性上设置 Name 属性。

我在过去的项目中使用的只是:

[ManyToOne(Column = "TypeOfEvent",
           ClassType = typeof(EventType),
           NotNull = ??)] // Set as appropriate
public virtual EventType TypeOfEvent { get; set; }

正如评论者所提到的,如果您向该文件添加了其他 namespace ,则 EventType 类可能不明确;但是,如果是,您应该会收到编译器错误。

这是一个新项目,还是您尝试加载的第一种实体?您之前是否在此项目中成功创建过任何其他 ManyToOne 映射?

关于c# - 遇到 Nhibernate 和 ManyToOne 属性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3589163/

相关文章:

nHibernate:无法找到持久性

c# - 虚拟网络摄像头输入为字节流

c# - 如何用 0xFF 字节填充 MemoryStream?

performance - NHibernate select指数增长缓慢

c# - nhibernate 不级联删除 child

.net - 尝试使用它作为成员的类型来映射实体

c# - Nhibernate通过代码映射,如何使用存储过程?

c# - 在不同存储库中共享类似的 linq to 实体表达逻辑的建议做法是什么

c# - 为公司树选择正确的数据结构

c# - NHibernate - 使用 QueryOver 选择多列的最简洁的方法