假設我有一個包含整個字段的表和一個爲其生成的EF實體的表。假設我想顯示這個實體的編輯表單,但是有一個額外的字段不直接映射到表格。帶額外字段的模型
因此,我創建了一個模型類,繼承我的實體類和我的字段。到現在爲止還挺好。
現在的問題是,現在我必須將每個字段從實體對象複製到模型對象,當返回視圖和其他方式保存數據時。當然,有一個更乾淨的方法來做到這一點?
具體的例子是一個用戶管理表單,額外的字段是密碼和確認密碼字段,這些字段存儲在Membership表中。
假設我有一個包含整個字段的表和一個爲其生成的EF實體的表。假設我想顯示這個實體的編輯表單,但是有一個額外的字段不直接映射到表格。帶額外字段的模型
因此,我創建了一個模型類,繼承我的實體類和我的字段。到現在爲止還挺好。
現在的問題是,現在我必須將每個字段從實體對象複製到模型對象,當返回視圖和其他方式保存數據時。當然,有一個更乾淨的方法來做到這一點?
具體的例子是一個用戶管理表單,額外的字段是密碼和確認密碼字段,這些字段存儲在Membership表中。
在用於在應用程序層(如UI)和連接到存儲的原始實體之間進行通信的數據傳輸對象之間分隔是一種很好的做法。是的,您需要來回複製字段,但有些工具可以幫助您完成此任務,例如AutoMapper。
相當令人失望的答案......但我想這是它是什麼。 –
您可以使EF實體partial
(我認爲它們通常是默認情況下),然後將該字段添加到單獨的文件中,該文件也具有該類的partial class
。這不像伊利亞的回答那麼好,但很容易。
將這些屬性放在部分類中將無濟於事。所有部分將一起編譯並看作一個模型,因此EF將爲所有屬性創建列。 – CodeCaster
@CodeCaster - 取決於你是先做代碼還是先做數據庫。如果你已經擁有數據庫,你可以添加任何你想要的,它不會創建更多的列。 – Bobson
在這種情況下,這似乎是OP的情況,你是對的。 – CodeCaster
使用'AutoMapper'不需要一個完整的答案,只是谷歌它 – gdoron