如何将属性添加到Entity Framework生成的.cs文件中

时间:2014-08-15 06:00:53

标签: c# asp.net-mvc entity-framework

我正在创建一个ASP.net MVC Web应用程序并尝试将验证属性添加到我使用实体框架从SQL服务器生成的ClientsTbl.cs文件中。我已经完成了脚手架并为表(模型)创建了视图和控制器,但由于某种原因,脚手架没有将主键列识别为主键。最重要的是它不会让我在[]中添加属性。我甚至无法更改显示在视图表单文本框上方的字段说明。我如何在下面的课程中完成上述操作?

namespace Testit.Models
{
using System;
using System.Collections.Generic;

public partial class ClientsTbl
{
    public ClientsTbl()
    {
        this.ProgramClientTbls = new HashSet<ProgramClientTbl>();
    }

    public int id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int CenterId { get; set; }
    public string MiddleName1 { get; set; }
    public string MiddleName2 { get; set; }
    public System.DateTime DateAdded { get; set; }

    public virtual CenterTbl CenterTbl { get; set; }
    public virtual ICollection<ProgramClientTbl> ProgramClientTbls { get; set; }
}
}

1 个答案:

答案 0 :(得分:0)

您可以创建元数据类来执行此操作。例如,如果Id,FirstName和LastName是必填字段,则可以创建如下所示的新类。

public class ClientsTblMetadata
{
    [Required()]
    public int Id { get; set; }

    [Required()]
    public string FirstName { get; set; }

    [Required()]
    public string LastName { get; set; }
}

然后,您需要添加一个具有MetadataType属性的新分部类。请确保此类位于相同的命名空间下,否则将无效。

namespace Testit.Models
{
    [MetadataType(typeof(ClientsTblMetadata))] // you need this line of code.
    public partial class ClientsTbl