我有一个具有多对一属性的类,如下所示:
[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,一切正常。
我意识到这可能是一件非常简单的事情,但谷歌搜索并没有帮助。救命。请。
答案 0 :(得分:0)
我认为您不需要在Name
属性上设置ManyToOne
属性。
我在过去的项目中使用的只是:
[ManyToOne(Column = "TypeOfEvent",
ClassType = typeof(EventType),
NotNull = ??)] // Set as appropriate
public virtual EventType TypeOfEvent { get; set; }
正如评论者所提到的,如果你已经为该文件添加了其他命名空间,那么EventType
类可能不明确;但是,如果是,则应该收到编译器错误。
这是一个新项目,还是这是您尝试加载的第一种实体?您是否已成功在此项目中创建了任何其他ManyToOne
映射?