【问题标题】:EnumDropDownListFor extending an existing databaseEnumDropDownList 用于扩展现有数据库
【发布时间】:2014-11-02 02:08:48
【问题描述】:

我的应用程序是 MVC 5.2,使用 EF 6.1 Database First。以前从未使用过 Enum,我正在尝试将下拉列表中的键值存储在以下位置:

      public partial class Sleep {
      public Nullable<int> SleepId {get;set;}
       }

为了利用新的@HTML.EnumDropDownListFor,我添加了以下部分类

  public enum SleepValues : int
            {
            Good = 1,
            Bad = 2,
            NotWell = 3
            }

并将原来的类改为

public Nullable<SleepValues > SleepId {get;set;}

我收到以下错误:

The entity type Sleep is not part of the model for the current context.

非常感谢您的建议。

【问题讨论】:

  • 你的数据库中有睡眠表吗?
  • 是的。它有 Id、SleepId 和 theDay。
  • 您是否将实体添加到您的上下文中,例如 context.Add(entity)?您的对象的 EntityState 是什么?

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


【解决方案1】:

好的,我能够重现此问题。我认为您需要在模型(即 edmx 文件)中明确将 Property SleepId 的类型更改为枚举。 您可以尝试以下步骤,看看是否能解决您的问题:

  • 首先删除现有的 SleepValues 枚举
  • 转到 edmx 文件并右键单击 SleepId 属性。
  • 点击“转换为枚举”选项
  • 现在通过出现的“添加枚举类型”对话框定义您的枚举。

详情请参考以下链接。

http://msdn.microsoft.com/en-in/data/jj248772.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 2011-04-18
    • 2011-12-10
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多