2010-08-28 54 views
2

我已經有一個多被定義爲一個屬性的類如下麻煩:經與NHibernate和多對一性質

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

每次我嘗試使用簡單的查詢(只是加載所有事件的加載類在數據庫中)我得到以下異常:

NHibernate.HibernateException: 創建代理實例失敗
----> System.Reflection.AmbiguousMatchException :曖昧MATC h發現。

Event表具有與EventType表的主鍵EventTypeId相關的外鍵(EventTypeId)。如果我將映射更改爲int,則一切正常。

我意識到這可能是一個非常簡單的事情,但Google搜索並沒有幫助。幫幫我。請。

+0

是否可以在多個名稱空間中定義「EventType」,並且您需要在某處完全限定類名? – Tahbaza 2010-08-28 03:51:26

回答

0

我不認爲你需要設置ManyToOne屬性Name屬性。

我在過去的項目中使用什麼被簡單地:

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

正如評論者提到的,如果您添加其他命名該文件,該EventType類可能是不明確;然而,如果是的話,你應該得到一個編譯器錯誤。

這是一個新項目,還是這是您嘗試加載的第一種類型的實體?你以前在這個項目中成功創建過任何其他ManyToOne映射嗎?