我在EF 4.x中使用ASP.NET MVC 3.0 Database First方法。使用EF 4.x DBContext Generator生成模型。现在我想更改模型结构但不想更改现有模型,因为如果修改了数据库,我必须再次生成模型,这样更改就会消失。我认为应该通过覆盖部分类来完成,但不清楚。有没有任何例子可以做到这一点?实施它的最佳方法是什么?
编辑:我必须在某些模型中添加一些额外的验证,而不是全部。我想创建独立的模型来覆盖生成的类,如果重新生成EF模型,我们的定制模型没有任何损害。
答案 0 :(得分:1)
您可以像这样创建部分类
namespace MyProject.Data { 公共部分类用户{} }
但您的部分类应该是EF创建的类的相同名称空间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
[MetadataType(typeof(UserMetadata))]
public partial class User : IEntity
{
internal class UserMetadata
{
[DisplayName("User Name")]
public virtual string UserName
{
get;
set;
}
[DisplayName("First Name")]
public virtual string FirstName
{
get;
set;
}
[DisplayName("LastName")]
public virtual string LastName
{
get;
set;
}
}
}