星期三, 12月 06, 2006

.Net ORM

最近在寫一個不是很重要的設備管理程式,幾乎全部在做Database操作,因此想找個好用的ORM(Object-relational mapping)工具。在Java上,最多人使用應該就是Hibernate,但在.Net上,似乎NHibernate不是首選。

Ask TheServerSide: Which .NET ORM is best?提到O/R Mapping - Tools, Libraries & Frameworks有許多的ORM實作,看到他列的36個實作不禁傻眼,我要怎麼選呢?幸好對岸有人先做功課,選個.NET ORM指出只有NHibernateGrove、ObjectSpaces 需要關注。

在找不到ObjectSpaces實作的情況下,NHibernate似乎缺少Visual Studio整合,那就只剩下Grove。對岸的MSDN有篇Grove——.NET中的ORM實現

李匡正說過,.Net的ORM絕對不會是NHibernate,看來也不可能是。我認為現在的微軟政策是先以Visual Studio快速開發,因此才會把不成熟的ObjectSpaces移除。以目前的.Net資料開發技術,仍舊以DataSet與xml為主軸,強加上ORM的確很難用,導致ORM變成ORZ,因此試用後還是放棄用Grove,先用DataSourceID快速開發。

2 則留言:

Maxi Ng 提到...

最近我也在為ORM頭痛
Linq2Sql和EF好像都不行
現在看到站長說NHibernate和Grove也不行
看來還是要回去自己寫ADO.NET了...

鳥毅 提到...

這篇是2006年寫的,現在的Entity Framework有好一點啦...不過仍然很麻煩,我後來用中國人開發的 MyGeneration,雖然功能不算強,但至少解決在EF不能處理 "有Foreign Key" 的情況。