我在Entity Framework 4.1.10331.0版本的數據庫中有自動生成的模型。忽略實體框架中的特定列?
我想忽略從實體的柱不使用流暢API和不改變ObjectContext
成DbContext
(當然,而不刪除從SQL表中的列)和無標記與該屬性的模型生成的屬性NotMapped
,因爲無論何時我在模型中更新我的上下文,該列將重新出現。
有人可以幫助我在這種情況下?
感謝和問候奔
我在Entity Framework 4.1.10331.0版本的數據庫中有自動生成的模型。忽略實體框架中的特定列?
我想忽略從實體的柱不使用流暢API和不改變ObjectContext
成DbContext
(當然,而不刪除從SQL表中的列)和無標記與該屬性的模型生成的屬性NotMapped
,因爲無論何時我在模型中更新我的上下文,該列將重新出現。
有人可以幫助我在這種情況下?
感謝和問候奔
EF數據庫優先級在很多地方都非常不足。與您的問題類似,如果您從DB生成模型並重命名CodeSpace中的列(因此列users.col_chr_UsrName只是User.Name),那麼在重新生成模型時也會丟失它。
如果我記得不錯,在EF3,EF4甚至在EF5中都沒有辦法保存它們。如果你只是「更新」模型,他們有幸存活下來,但再生不會保留任何東西。
您可以嘗試創建一個將在重新生成後運行的腳本或一組腳本,並且這些腳本可能會尋求修補程序並將其應用於生成的模型。但那就是,「解決方法」(字面上,工作和周圍),而不是一個真正的解決方案。另一件事情,更多的工作是定義將處理投影的視圖或StoredProcedures(或自定義表映射),但它們有時也可能在重新生成後變得毛茸茸(特別是自定義表格映射將永遠消失)。
實際上,您可以忽略不需要的列,並準備一組執行投影的輕型LINQ包裝器/存取器,並將它們放入一些靜態MyTables類中,並使用該類代替RawTable。這將工作,並可能可用,但不再漂亮。
恕我直言,最好的方法是使用後來修復模型的腳本,或者使用不需要的列,或者不使用設計器內的自動生成。試着找到另一個更智能的發電機。
如果您想忽略,請忽略它。這與編程有什麼關係?你的意思是沒有從數據庫中獲取該列的數據或者什麼? – 2013-05-10 06:28:39
是的美特我的意思不是要處理該列的數據 – 2013-05-10 06:30:51
oops。我沒有注意到那個評論。你的意思是,只是不提取數據?或者你的意思是根本不在生成的類定義中包含該列(因此「myShoeSize」在代碼中從未見過,並且它只是存在於數據庫中的「祕密列」)。 – quetzalcoatl 2013-05-10 06:44:16