2010-08-14 28 views
0

幫助!我的手指從打字中掉下來很多。L2S投影中是否存在大量不匹配字段的快捷方式?

我有很多有理智的名字給它們的對象。數據庫名稱不那麼理智,我堅持在我所有的預測中定義屬性名稱。

例如:

from f in foo select new MyClass() {MyID = f.ID, MyName = f.f, MyTime = f.t} 

等。現在,由數百甚至數千的是物化數據成各種教學班,在大多數領域的屬性不匹配的字段名稱和幾十個業務對象的方法乘這個andit是一個很多打字。

所以,我想知道是否有任何允許您定義的類默認的映射方式(也許通過屬性或別的東西),這樣即使不匹配場我可以簡單地說:

from f in foo select new MyClass() 

任何解決方案?還是我卡住打字我的手指?

編輯:

在進一步的思考(雙關語半意),我意識到,這正是L2S是,我可以重命名L2S數據類,無論我需要的字段。

有時候最簡單的答案是擺在我們面前。

回答

1

只是一個其他建議 - AutoMapper將允許你一次,然後註冊映射只需調用共享的方法來從一個對象映射到另一個

+0

那裏有太多偉大的技術,在洗牌中迷失了方向。我從來沒有聽說過automapper,但它看起來非常酷。感謝您的高舉。 – 2010-08-14 19:30:38

+0

我給你的答案,因爲你需要它超過喬恩做,你的解決方案實際上是一個更好的解決方案,以我問的問題,儘管Jon的解決方案是一個更好的解決方案,以我的需要;) – 2010-08-14 19:32:12

+0

非常感謝:) – Basic 2010-08-14 21:51:16

2

嗯,一個顯而易見的選擇是去DBML設計師和更改生成的類屬性的名稱。它們不必與數據庫中的相同。

剛剛進入設計,點擊屬性,改變名稱的一部分。 (Source屬性是數據庫列名稱。)重建項目,並且名稱已更改。

或者,如果你總是從一個源轉化成相同的類型,創建在其轉變成所述目標一個源數據類型的部分類的方法 - 或反之亦然。所以你可以寫一個Foo.ToMyClass()方法,或者MyClass.FromFoo(Foo foo)

+0

是的,我來到了我自己的這個結論。有趣的是,我們如何接受設計者在很多情況下爲我們提供的默認設置。 – 2010-08-14 19:22:52

相關問題