為啥不用ActiveRecord

2021-09-09 03:45:00 字數 901 閱讀 5345

首先,

ar的改進之一是用特性來替換對映檔案。

稱這樣能減少**,提高開發效率,但是用

nhibernte

大部分人也不會手寫**,而是通過工具生成,這樣這點其實優勢不大。

不可否認這樣做在修改時更方便,不用修改兩個檔案(

dry)。

但是缺點也很明顯,特性不可能完全對映配置檔案,否則特性會把類弄的很亂,這也使

ar只能是

nhibernte

的子集。另乙個缺點是,特性使域物件變的不單純,移植性差。再乙個,特性效率也比不是解析

xml。

其次,ar給每個域物件增加了基類,這點同樣是域物件難以移植,恰巧移植性是

nhibernte

的優勢。

還有,ar對

session

的管理,是他的一大優勢。一些專案如

cuyahoga

,只用到了ar的

session

管理,而沒有用其他的封裝。但是最新的nh(

1.2)也逐漸提供了內建的

session

管理,這也變的不很必要。

再一點,如果不懂

nhibernate

,我相信只看ar的

api也很難實現些複雜的應用。

因此對於新手來說,最好從

nhibernte

開始,然後過渡到ar。

ar應該在其他方面多做些工作,而不是單純的去封裝nh的

api,如提供些好的業務層模式的封裝,可以使更好的分離業務邏輯,就像現在的

customquery

,實現可以把複雜業務規則封裝為乙個類。

還有,發揮

castle

的優勢,在動態的生成些可以改進

nhsession

快取的il。

脫離Rails使用Activerecord

activerecord 是迄今為止我所見到的最好的orm library 除了db2,支援所有的主流資料庫。如果你想知道如何單獨使用activerecord,please follow me。介紹一下我的系統環境 os windows2003 database oracle10g ruby 1.8...

網際網路公司為啥都不用MySQL分割槽表?

一分鐘系列 當mysql單錶的資料量過大時,資料庫的訪問速度會下降,資料量大 問題的常見解決方案是 水平切分 1 分庫分表 2 分割槽表。畫外音 我c,沒聽過分割槽表,有朋友驚嘆。把乙個很大的庫 表 的資料分到幾個庫 表 中,每個庫 表 的結構都相同,但他們可以分布在不同的mysql例項,甚至不同的...

電腦一年沒用反應好慢 電腦長時間不用為啥會壞?

經常有朋友說電腦一段時間沒用,再使用就無法開機了,或者出現各種亂七八糟的問題,想知道為什麼。問題的原因就在於電子零部件導體是以銅為原料,在缺乏了工作溫度的保護之後極為容易導致其氧化,而那個氧化物會有乙個不規則的蔓延現象。在我們開機的一瞬間,那個蔓延過界的氧化物有可能就會引起短路,造成不可逆轉的故障。...