2012-08-07 56 views
1

我從我的SQL Server數據庫構建我的EF(v4.0.30319)數據模型。每個表都有通過數據庫觸發器填充的CreatedUpdated字段。如何告知EF忽略來自數據庫的列?

此數據庫是ASP.NET Web API應用程序的後端,我最近發現了一個問題。問題是,由於CreatedUpdated字段未填充到傳遞到api端點的模型中,因此它們將作爲NULL寫入數據庫。這將覆蓋數據庫中已有的這些屬性的任何值。

我發現我可以編輯EF數據模型,並從實體中刪除這兩列。它的工作原理和日期時間不會被NULL覆蓋。但是這會導致另一個不太嚴重但更令人討厭的問題......我的數據模型有一堆包含這些屬性的表,並且需要通過刪除這兩列來更新所有表。

有沒有辦法告訴EF忽略整個數據模型中的實體中的某些列而不手動刪除它們?

回答

1

據我所知,沒有。從數據庫生成模型將始終創建數據庫表中的所有字段。那麼,只要它有一個主鍵就可以了。

可以只更新所需的字段,即不在創建和更新方法中包含「已創建」和「已更新」字段。不過,我不得不說,如果那時候模型中還沒有這些領域的話,我認爲會更好。您可能會在某一時刻看到模型上的這些字段,但不記得它們不會持久保存到數據庫中。

當您調用create()和update()方法時,您可能需要考慮將日期時間插入到這些字段中。那麼你可以拋開觸發器。你顯然希望爲所有的數據庫操作使用一個類庫,所以這個功能將在一個地方。爲了保持它的整潔,你知道嗎?