2012-08-11 65 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; } 
} 

}