2008-09-25 49 views
1

有沒有人用C#3.5試過ActiveRecord Intro Sample? 我以某種方式感覺樣本完全錯誤或剛過期。 XML配置是完全錯誤的:.NET 3.5的Castle-ActiveRecord教程破解了嗎?

<add key="connection.connection_string" value="xxx" /> 

應該是:

<add key="hibernate.connection.connection_string" value="xxx" /> 

(如果我理解NHibernate的配置語法正確的..)

我不知道我做錯了什麼。在用戶模型中調用Count()時,出現「無法爲用戶執行ExecuteQuery」異常。

不知道這可能是什麼。本教程的源碼與頁面上的源碼有很大的不同(最值得注意的是在XML配置中),它是一個VS2003樣例,它在大多數情況下都有不同的語法(沒有泛型等)。

有什麼建議嗎? ActiveRecord看起來很棒..

回答

1

(這是作爲評論發表太長)

[@Tigraine]從我以前的答案,它看起來像錯誤您的意見不在於配置,但與你的實體之一。刪除「休眠」糾正了配置,以便它爲您指出真正的錯誤,這似乎是實體「發佈」沒有正確歸因於ActiveRecord創建其映射。

如果你進一步發現它給出的錯誤,它可能有一些細節來說明「Post」的失敗。

一些共同的東西包括:

  • 類不具有[ActiveRecord]屬性。
  • 沒有屬性[PrimaryKey]屬性。
  • 沒有稱爲「發佈」的匹配表(如果PluralizeTableNames爲「true」,則爲「發佈」)。
  • 屬性屬性沒有匹配的列。
  • 你的屬性和公共方法不是virtual(這個人一直都在殺我)。
0

刪除所有配置條目的「hibernate.」部分。你的第一個例子是正確的。

+0

這就導致了以下錯誤: 「的錯誤添加從類ActiveRecord.Post NHibernate的信息檢查內部異常的詳細信息,」 只要休眠。部分是在配置中,我至少可以調用ActiveRecordStarter.Initialize()沒有例外 – Tigraine 2008-09-25 13:27:35

+0

奇數。我會檢查兩件事之一,然後: 1)你使用的是什麼版本的ActiveRecord? 2)您的配置文件中是否有拼寫錯誤或丟失的鍵? – Gilligan 2008-09-25 13:30:18

1

該關鍵字的'hibernate'部分在NHibernate 2.0版中被刪除。 這個版本是NHibernate的2.0起正確的:

<add key="connection.connection_string" value="xxx" /> 

編輯: 我看到快速啓動不來與二進制文件城堡和NHibernate。您必須從某處下載二進制文件;如果你可以提供你的NHibernate.dll文件的版本號將會很有幫助。令人困惑的是,至少有一些quickstart已經更新爲NHibernate(NH)2.0的最新版本,但最新的'正確的'Castle版本仍然是1.0 RC3(現在差不多一歲),它不包括NH 2.0。

你可以走兩條路。您可以繼續使用Castle RC3,在這種情況下,您確實需要爲配置條目添加「休眠」前綴。或者你可以從幹線上下載Castle的build,這應該是針對NH 2.0運行的。後一種方法存在的問題是,在NH 2.0中引入的其他一些突破性變化在快速啓動中可能不會被修復。