我正在使用MVC 4.0
和entity-framework 5
来生成model
。
我试图理解自定义的概念,我按照教程网站中给出的相同步骤,如this和this
唯一的区别是我在不同的子文件夹中添加此自定义类代码,因为当直接尝试在模型文件夹中添加此代码时,它会显示已在此创建的错误员工类(由实体框架自动生成)
按实体框架自动生成代码
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace CustomizationConceptUmang.Models
{
using System;
using System.Collections.Generic;
public partial class employee
{
public int id { get; set; }
public string name { get; set; }
public string email { get; set; }
}
}
自定义代码
namespace CustomizationConceptUmang.Models.ViewModel
{
[MetadataType(typeof(employeeMetaData))]
public partial class employee
{
}
public class employeeMetaData
{
[Display(Name="Employee Name")]
public string name { get; set; }
}
}
查看
<th>
@Html.DisplayNameFor(model => model.name)
</th>
仍然显示名称而不是员工姓名
请提前告诉我如何解决此问题。
答案 0 :(得分:1)
部分名称位于不同的名称空间中,因此它们是两个单独的类,元数据不会应用于employee
实体。
匹配命名空间以将多个部分类合并为一个。
无论如何不要将Entity Framework模型用作视图模型。创建一个单独的类,其中包含视图模型的注释,并与您的实体进行映射。你以后会感谢我。