2013-01-08 101 views
0

我想在MVC4中使用Model first Entity Framework。想要禁用實體模型中的一些屬性的創建,這些屬性只能假設用作viewModel。我將動態地在控制器中填充模型屬性。停止實體框架在模型中創建一些屬性

我可以知道我應該爲這些屬性註釋哪些屬性?

如果這不能完成,那麼我必須創建一個分離的ViewModel來做到這一點。但是,視圖模型仍然有其他屬性與實體模型相關聯,將它們映射到一起的最佳方式是什麼?謝謝。

回答

1

實體框架設計器創建持久實體的模型。通過這個設計器添加的所有屬性都會保留。設計師爲每個建模實體創建部分類。如果您希望爲視圖提供其他非持久屬性,則可以爲僅具有非持久屬性的實體(持久屬性已經是自動生成部分的一部分)創建自己的類的部分部分,或者可以創建專門的查看您需要的所有屬性的模型。

+0

感謝您向我介紹這個新概念,儘管我的模型是第一種方法。我認爲部分類只能用於代碼,對嗎? – anIBMer

+0

自從.NET 2.0引入它以來,沒有任何部分類是設計器生成代碼的核心概念。有了EF,它主要用於數據庫的第一個和第一個模型,因爲使用代碼首先你沒有設計器生成代碼=你不需要單個類的兩個部分。 –

2

您可能想嘗試[NotMapped]屬性來告知EF不保存屬性。例如:

public class MyEntity { 
    public int Id {get; set;} // will be stored as a column in the DB 
    [NotMapped] 
    public int MyProperty {get; set;} // will not be stored as a column in the DB 
} 
+0

我厭倦了這一點,它不與這個屬性一起工作,謝謝。任何她的屬性我可以使用? – anIBMer

相關問題