将新的虚拟属性添加到模型MVC3 EF4
问题描述:
我最近刚刚了解到如何将数据注释放入新的部分类中,以便它们保留来自数据库的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?
答
我想通了。随附的数据注释部分类有一个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; }
}
}
显示我们的类。 – Mohayemin 2012-08-11 03:42:35