2012-08-11 58 views
1

我最近剛剛瞭解到如何將數據註釋放入新的部分類中,以便它們保留來自數據庫的edmx更新。
Database-first approach and modifying the database schema
Update Model From Database (Database First)將新的虛擬屬性添加到模型MVC3 EF4

在我的模型之一,我有兩個屬性:firstName和lastName。 我已經爲下面看到的全名創建了一個虛擬屬性。

public virtual string fullName { get {return firstName + " " + lastName; } } 

FullName屬性工程時,它在產生.TT模型類的EDMX,但是當我把它放在我的「哥們」持有我的註釋部分類,這是行不通的(即不被識別由應用程序的其餘部分作爲我班的屬性)。

如何獲得類似上面的fullName屬性的聚合虛擬屬性不會被數據庫更新覆蓋到edmx?

+0

顯示我們的類。 – Mohayemin 2012-08-11 03:42:35

回答

1

我想通了。隨附的數據註釋部分類有一個classMetaData類,您可以使用它爲您的部分類設置元數據(即您的註釋轉到此處)。聚合屬性必須進入部分類(不是元數據類)。

所以第二個部分類的代碼應該是這個樣子:

namespace MyProject.Models 
{ 
[MetadataType(typeof(PersonMetaData))] 
public partial class Person 
{ 
    //this is where you put new aggregate properties 
    public virtual string fullName { get { return firstName + " " + lastName; } } 
} 

public class PersonMetaData 
{ 
    //this is where you put data annotations 
    [Required] 
    public string firstName { get; set; } 
    [Required] 
    public string lastName { get; set; } 
} 

}