我已經使用實體框架從現有數據庫生成模型,並且我想計算屬性的值。例如存在於數據庫中的MVC實體框架計算值
我有一個元信息表:
- 的PageTitle,字符串,不能爲空
- MetaTitle,字符串,可爲空
所以我已經構建了部分類:
public partial class MetaInfo
{
public string MetaTitle
{
get
{
if (string.IsNullOrEmpty(_MetaTitle))
{
return _PageTitle;
}
return _MetaTitle;
}
}
}
顯然,這不起作用,因爲'MetaInfo類型已經包含一個定義爲MetaTile'。
有沒有辦法做到這一點維護相同的屬性名稱,或者我應該重新命名我的計算屬性?
雖然我在這裏,我可以做一些wiza-ma-jig並獲得代碼首先與我現有的數據庫集成,並會繞過這個問題嗎?
[Entity Framework Power Tools](http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d?SRC=Featured)應該允許您從一個代碼優先的模型現有數據庫。 (不知道Code First是否會讓你做你需要的映射,但你至少應該能夠自定義映射字段/屬性的名稱。) – millimoose 2012-07-31 16:49:50
我認爲你需要在某處添加另一層模型。你是否試圖直接在你的視圖中使用你的實體類?如果是這樣,你應該爲你的視圖創建ViewModels。這些將具有與自動生成的類幾乎相同的屬性,但您可以根據需要添加額外的方法(或更改屬性)。例如,添加一個名爲'GetPageTitle()'的函數,該函數檢查MetaTitle的值並執行任何您需要的操作。 – musefan 2012-07-31 16:56:54
是的,我在我的視圖中使用實體類我認爲使用實體中的元數據/數據註釋/驗證幫助框架代碼單獨的視圖模型是不經濟的,但它不是非常乾燥或imo。現在,直到我找到一個更好的解決方案,我要與一個getter。謝謝:) – Smithy 2012-08-01 14:34:15