2008年6月10日 星期二

ORM Survey

這兩天在 Survey OR Mapping 的方式
有找到幾個 solution

1. MyGeneration
這是一個 Open Source 的 Code Generator
可以依DB Schema 產生出 Entity 完全以物件的方式來做查詢的工作
看來還滿好用的

public void JoinWithArithmeticExpressionOrderByCalulatedColumn()
{
// Notice we create a calulated column based on the TotalSales, then Order by it descending
CustomerQuery cust = new CustomerQuery();
OrderQuery order = new OrderQuery();
OrderItemQuery item = new OrderItemQuery();

cust.Select(cust.CustomerName, (item.Quantity * item.UnitPrice).Sum().As("TotalSales"));
cust.InnerJoin(order).On(order.CustID == cust.CustomerID);
cust.InnerJoin(item).On(item.OrderID == order.OrderID);
cust.GroupBy(cust.CustomerName);
cust.OrderBy("TotalSales", esOrderByDirection.Descending);

CustomerCollection coll = new CustomerCollection();
coll.Load(cust);
}

2008/06/12 補充
其實上面說的有點錯誤
MyGenerator 只是一個 Code Generator, 要產生如上面一樣的 Code 必需要有 Template 的搭配。
上面的 Code 是由一家名為 Entity Space的公司所提供,所以是要錢的~

如果不想要花錢,MyGenerator 網站上還有提供一套 dOOdads 這就很類似以前所用的 DAO的架構了。

所以還是來學一下 NHibernate 比較實在。



2. NHibernate
就是 Hibernate for .Net 啦~
是由 Java 開始發展到 .Net 來的。這是一個有很多大型專案測試過的。穩定性十足

3. CSLA
這並不是 ORMapping 的 solution。他比較像是 Entity Framework
阿源哥哥的軟體組裝工廠裡有一些簡單的介紹

4. Linq to Sql
這是 .Net Framwork 3.5 裡頭新的功能,還在研究當中

沒有留言: