2011-11-25 43 views
0

我想知道如何在使用實體框架時更改輸入值。直到現在我正在使用自制的自定義類,我轉換爲實體類。我想我正在把我要做的工作加倍。在自定義類中,我在設置器中轉換輸入值。荷蘭的郵政編碼是4位數加2個字符。有些人用一個空間將他們分開,其他人將他們一起加入。此時如果需要,正則表達式將分隔字符中的數字。使用實體框架時。在將值寫入te數據庫之前是否有可能更改輸入值?如果是這樣,我該怎麼做?是否可以使用實體框架部分方法更新已更改事件的值

我正在尋找驗證,但所有的例子,我看到哪裏只拋出錯誤,沒有有效地轉換價值。

荷蘭郵政編碼「5126HG」或「5126 HG」的示例都應導致數據庫中的結果相同。我已經知道如何改變,但不知道如何申請。

+0

你如何將你的類轉換爲實體類?你的意思是你把你班上的數值映射到實體上嗎? –

+0

是的,這正是我正在做的。我有具有相同屬性的類。在這個類中是我的業務邏輯。當我想訪問數據庫時,我有兩種方法可以映射來自或去往實體的所有屬性,反之亦然。 –

回答

1

我認爲使用自定義類是一個好主意,它類似於實現DTO模式,它是將業務層與數據訪問層分開的好方法。但是,如果你想添加一些驗證/修改方法的實體類,你可以做到這一點。

如果您使用的是EF 4.1,您將POCO類作爲由生成器創建的實體作爲部分類。您可以添加您的自定義部分類添加驗證方法,但您需要在執行數據庫操作之前顯式調用這些方法。

另一種方法是使用自定義的SaveChange處理程序。在這裏您可以找到SaveChange自定義的示例。 http://msdn.microsoft.com/en-us/library/cc716714.aspx

0

在將值寫入te數據庫之前是否有可能改變包含值?如果是這樣,我該怎麼做?

最好是有一些單獨的Controller類與該需要,驗證輸入轉換才把設置Entity屬性與有效,正確和一致的值的方法。

這樣,您的Entities總是有效且正確,並且在寫入數據庫之前,您永遠不需要非標準機制來更改值。