NHibernate中訪問Access總不爽

2022-03-14 01:22:59 字數 749 閱讀 2562

一直在用的nhibernate.dialect.msaccess2000dialect,突然發現期生成表結構時有問題。查了一下,發現1.0.1的nhibernatecontrib下有乙個jetdialect,但需要多乙個dll檔案。為什麼不直接新增到主專案中呢?只好自己來了。從這裡下了完整的**,編譯通過。測試,生成表結構沒有問題了,但在insert時乙個日期型別的值總說

enprint.db.test.orderfixture.addorder : nhibernate.adoexception : could not insert: [enprint.db.order]

----> system.data.oledb.oledbexception : 標準表示式中資料型別不匹配。

執行的sql語句簡單得要命

nhibernate :insert into [order] (customer_id, builddate) values (?, ?)

在對映檔案中去掉builddate的對映,測試才能通過。巨汗...

沒辦法回到這個頁面

意外找到了msaccess2000dialect的源**(其實我家裡的破機器上有這個源**,還是修改過能使用的,不過主機板送修中)。將兩檔案加到1.0的專案中。除錯通過後,分析其生成的建表語法,只是主鍵的語句有問題,發現有這麼乙個地方,於是修改測試。哈哈哈,測試通過。

public

override

string

identitycolumnstring

get}

NHibernate中的分頁

如些獲得分頁的資料,應是nhibernate中常用的方法 cri.setfirstresult 20 cri.setmaxresults 10 ilist list cri.list list變數就得到某一頁的資料,上面是第20頁 從0計起 的資料。看了一其執行的sql語句 nhibernate s...

Nhibernate中的集合眏射

在nhibernate中經常遇到one to many和many to many的關係對映,用一些集合類來儲存關聯的many集合,這些集合類包括 ilist array和idictionary。其在map檔案中對應的元素為 list ilist set idictionary bag ilist m...

NHibernate 中刪除資料的幾種方法

1.使用session.delete t t 方法 使用這個方法,需要先從資料庫中獲取實體t或者直接new t 給id賦值,然後才能呼叫 session.delete t a var session nhibernatesession.current 自己寫的乙個獲取session的方法 var t...