我知道在使用模型优先开发时,可以使用由T4模板生成的部分类来添加元数据。例如:
public partial class Address
{
public int Id { get; set; }
public string Street1 { get; set; }
public string Street2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
}
然后在一个单独的文件中,我执行以下操作:
[MetadataType(typeof(AddressMetadata))]
public partial class Address {
}
internal sealed class AddressMetadata {
[Display(Name = "Street")]
public string Street1 { get; set; }
[Display(Name = "Street (cont.)")]
public string Street2 { get; set; }
[Display(Name = "Zip code")]
public string Zip { get; set; }
}
我正试图针对EDMX文件中定义的枚举类型执行此操作。
// this doesn't work
[MetadataType(typeof(ContactTypeMetadata))]
public enum ContactType {
}
public class ContactTypeMetadata {
}
这样做后,我遇到了以下错误:
Error 1 The namespace 'Models' already contains a definition for 'ContactType'
有没有办法在基于模型的项目中像类一样为枚举执行相同的功能?
编辑
在EDMX文件中,我定义了一个枚举类型:
namespace WindowsFormsApplication1
{
using System;
public enum ContactType : int
{
CEO = 0,
CIO = 1,
Peasant = 2
}
}
我正在尝试找到一种类似的机制(在不同的文件中),以便如果我修改EDMX,我的更改不会被覆盖,以完成这个目标:
namespace WindowsFormsApplication1
{
using System;
public enum ContactType : int
{
[Display(Name="Chief Executive Officer")]
CEO = 0,
[Display(Name="Chief Information Officer")]
CIO = 1,
[Display(Name="Regular Employee")]
Peasant = 2
}
}