我嘗試創建多對多映射時遇到問題。請看下面的表格:NHibernate的多對多映射錯誤 - NHibernate.MappingException:無法確定類型爲:
CREATE TABLE [dbo].[student]
(
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR(255) NOT NULL,
-- Some other stuff...
)
CREATE TABLE [dbo].[Subject]
(
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
-- Some other stuff...
)
CREATE TABLE [dbo].[studentToSubject]
(
[studentId] INT NOT NULL,
[subjectId] INT NOT NULL,
)
我的學生映射文件的有趣的部分是這樣的:
<id name="Id" type="Int32">
<column name="Id" sql-type="int" not-null="true" unique="true"/>
<generator class="native" />
</id>
<property name="Name" not-null="true" />
<bag name="subjects" table="studentToSubject">
<key column="studentId"></key>
<many-to-many column="subjectId" class="subject" />
</bag>
我想與他們的主題的集合學生就結了。但是,我得到一個錯誤:
NHibernate.MappingException: Could not determine type for: MyApp.Domain.Subject, MyApp.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=865c2d2b185d0c4b, for columns: NHibernate.Mapping.Column(studentId).
我已經看到這種類型的映射的一些例子,但他們在Id列在匹配映射表的名稱,例如一個事實,即它們的ID列具有名稱不同學生表被稱爲'studentId'。我不能這樣做(它必須是Id),但我認爲這是問題的原因。
感謝
錯誤是在談論NotificationType,我沒有看到你的映射。要麼你錯過了學生繪圖的重要部分,要麼就是在另一個繪圖中。 – 2010-03-04 16:00:39
我搞砸了試圖匿名代碼。 – jheppinstall 2010-03-04 16:16:34
請發佈您的主題類的映射,所以我可以檢查我給出的有效性的答案:) – 2011-08-13 15:42:01