c# - 如何将显示属性设置为 E.F. 生成的枚举?

标签 c# entity-framework

我刚刚进入 EF。在过去的 2 年里,我一直在手工编写数据库代码,终于受够了。在将枚举与 E.F 一起使用时,我遇到了一个问题。我之前编码的所有枚举都使用了显示属性,因此当在 xaml 中绑定(bind)到数据表单或任何其他控件时,将显示友好的名称而不是代码名称。 EX 显示“Light Brown”而不是“LightBrown 或 light_brown”等。枚举设计器只允许设置值和名称。有没有办法让这些自动枚举在绑定(bind)时显示不同的名称?

[Display(Name="Light Brown")]
Light_Brown,

编辑 我不是在寻找如何将枚举名称转换为更友好的名称。我已经知道该怎么做了。我的问题是访问使用 Entity Framework 设计器自动生成的枚举的自动生成代码。似乎有一种方法可以引用外部代码文件,所以我要研究一下。

最佳答案

在堆栈中找到一个问题和答案。您可以通过使用设计器中的“引用外部类型”选项来避免此问题。如果您使用 Entity Framework 的数据库优先设计而不是模型优先设计,这只是一个解决方案。

Entity Framework 5 Enums with Description attribute using Database First

作者在自己问题的评论下回答了自己的问题。

关于c# - 如何将显示属性设置为 E.F. 生成的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18069633/

相关文章:

c# - 绑定(bind)和级联下拉列表 mvc 3

c# - 如何将 C# 类库项目转换为 Silverlight 项目?

c# - ADO.NET ExecuteScalar() 不抛出异常

c# - 如何判断 EF4 实体是新记录还是现有记录?

c# - 引用组合框中的值时 LINQ 查询出错

c# - EF Code First - 通过反射为所有实体调用 MapInheritedProperties()

c# - EntityFramework - 在 LINQ 查询中按无序对分组

c# - 哈希表按位置检索值?

c# - 在 Asp Core 项目中启用 CORS 的问题

c# - 编译错误 : The type 'ASP.global_asax' exists in both DLLs