2010-05-07 90 views
0

我是ORM的新手,我有一個新的項目,我將在.Net MVC中完成。我可以使用ORM(作爲Subsonic)來使用API​​嗎?

在模型層我將創建我的類:視頻和我將作爲DataLayer(BrightCove & YouTube APIs)使用API​​。

所以,我沒有關係數據庫作爲數據層。是否可以使用ORM(如Subsonic)?

謝謝!

+0

ORM =對象** **關係映射 – 2010-05-07 00:08:43

+0

葉氏我知道,但我希望有一個「系統」從API到我OBJETS翻譯的數據:「映射器」 – Gabrielizalo 2010-05-07 00:14:38

+1

你可以看看AutoMapper(http://automapper.codeplex.com/)。我沒有保證它會做你想要的,但:) – 2010-05-07 03:53:36

回答

2

很確定這是不可行的。或者至少它不是ORM的意圖。

如果你正在處理一個API,你會打電話,並得到一個結果是?或者你打電話,然後從屬性獲取值?

無論哪種方式,ORm都無法映射。它不知道在調用api等等。它們給出的對象,他們可以解釋使用反射(我認爲)等。

所以我認爲你需要從API自己創建一個對象,在這種情況下,你可能在這種情況下不需要ORm。除非您在某種圖層中創建您的API模型,然後使用ORM轉換爲應用程序使用的模型。這將是一個更好的解決方案,因爲如果API模型更改您的代碼更改將是最小的。

1

Youtube上有一個.NET API,它提供視頻類以及從Youtube獲取數據的數據訪問方法。我認爲,除非你有充分的理由推出自己的產品,否則你可能會考慮使用他們的.NET API並直接使用或擴展他們提供的類。如果你想抽象出數據訪問,你可以創建你自己的視頻類,只需要你需要的屬性,並實現你自己的視頻庫,它使用Youtube的API來保護你的類的實例。

0

在SubSonic代碼中(只需從github下載),在SqlQuery類中有一個名爲「ExcecuteTypedList()」的整潔方法。

這只是一個使用反射將DataReader的結果映射到泛型類的小方法。這很簡單但很精彩。

您可以查看代碼並對其進行修改以適合自己的需求。

,它基本上是下面的,如果你調用ExecuteTypedList()

  • 創建類
  • 爲參數的實例「測試」它會嘗試加載類實例的屬性「測試
  • 將值設置爲
相關問題