遇到Nhibernate和ManyToOne属性时遇到问题

时间:2010-08-28 02:14:19

标签: c# nhibernate nhibernate-mapping

我有一个具有多对一属性的类,如下所示:

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

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

  

NHibernate.HibernateException:   创建代理实例失败
  ----> System.Reflection.AmbiguousMatchException   :找到了模糊的匹配。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

正如评论者所提到的,如果你已经为该文件添加了其他命名空间,那么EventType类可能不明确;但是,如果是,则应该收到编译器错误。

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