HiddenInput(DisplayValue = false)会加速迁移吗?

时间:2014-06-23 18:26:48

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

每次我需要更新我的模型时,我都可以自己解决这个问题..但这很烦人,我确实做了些什么来给自己造成这种痛苦。

每次我更新包含这些实体的上下文的模型(添加 - 迁移)时,我必须首先注释掉我在主键上注释[HiddenInput(DisplayValue = false)]的所有地方。然后我添加迁移..更新数据库..然后最后我必须返回并再次取消注释所有HiddenInput,以实际获得我想要的GUI行为。

这个HiddenInput实际上并没有影响代码的运行版本......如果它存在与否,EntityFramework仍然认为它正在连接到相同的数据库模式,并且无论如何都可以正常工作。这就像我认为的那样。

我不明白为什么我必须删除HiddenInput才能执行add-migration / update-database步骤。我不明白。

一个例子......

public class ET_APIKeyErrors
{
    [Key]
    /*mvc*/[HiddenInput(DisplayValue = false)]
    public long apiKeyErrorId { get; set; }

    public String errorAction { get; set; }
    public String errorResponse { get; set; }
    public String errorCode { get; set; }

    #region subitems
    public virtual ET_APIKey apiKey { get; set; }
    #endregion subitems
}

在使用添加迁移之前,我必须将/ mvc /更改为// mvc 然后我是一个add-migration和update-database 之后我再次用/ mvc 替换所有// mvc。

如果我忘记了这一步,我会很快被提醒我从模型生成中得到的错误......

One or more validation errors were detected during model generation:

App.ET_APIKey: : EntityType 'ET_APIKey' has no key defined. Define the key for this EntityType.
APIKeys: EntityType: EntitySet 'APIKeys' is based on type 'ET_APIKey' that has no keys defined.

0 个答案:

没有答案