0

我在 EF 4.x 中使用 ASP.NET MVC 3.0 Database First 方法。模型是使用 EF 4.x DBContext Generator 生成的。现在我想更改模型结构但不想更改现有模型,因为如果修改了数据库,我必须再次生成模型,这样更改就会消失。我认为应该通过覆盖部分类来完成,但不清楚。有什么例子可以做到吗?实施它的最佳方法是什么?

编辑:我必须在一些模型中添加一些额外的验证,而不是全部。我想创建覆盖生成的类的独立模型,如果重新生成 EF 模型,对我们的自定义模型没有任何伤害。

4

1 回答 1

1
  1. 您可以更改 *.tt 文件以从模型生成对象。你想改变什么对象。
  2. 您可以像这样创建部分类

    命名空间 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;
            }
        }
    }
于 2012-04-12T06:08:00.933 回答