2010-11-21 63 views

回答

1

您可以在創建映射器時執行此操作。基本上,這樣的事情:

var results = db.ExecuteSprocAccessor("some_sproc", 
    MapBuilder<MyTargetType>.MapAllProperties() 
     .DoNotMap("SomethingThatDoesntMatch") 
     .Build(), 
    param1, param2, param3); 

那將符合所有參數由名的成績,但不映射到任何財產SomethingThatDoesntMatch。

需要注意的一點:通過MapBuilder創建結果集映射器很貴,而且它不會自動緩存。如果你在循環中進行這個調用,它可能會很慢。我建議提前創建映射器並保持它,或者分別創建訪問器並保持訪問器。

+0

現在我甚至沒有使用映射器。我只是小心地構建我的對象,以便與我的sprocs返回的列匹配。它非常乾淨,適用於大多數情況。我希望我可以簡單地裝飾我不想用屬性映射的屬性。好吧。現在,我正在運行邏輯層中的一個循環,並通過參數複製對象參數 - 我從sproc訪問器返回到包含我需要的其他幾個參數的對象列表中。如果我遇到性能問題,我會測試兩種方法並使用更快的方法。謝謝!!! – birdus 2010-11-23 04:36:43

+2

好吧,你正在使用一個映射器,它只是隱含地爲你創建。是的,在這種情況下,你必須明確地創建一個。我們非常刻意將事情簡單化;我們只是希望更容易地使用數據庫結果,而不是意外地構建ORM工具。 – 2010-11-23 04:39:36

+0

啊。你在EntLib團隊中。涼。是的,從我的sprocs獲取對象列表是超級光滑的。我很喜歡。謝謝你的幫助。 – birdus 2010-11-23 04:46:12

相關問題