Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体类型配置中的HasMaxLength值增加未完成迁移?_Entity Framework_Ef Code First_Code First_Entity Framework Migrations_Data Migration - Fatal编程技术网

Entity framework 实体类型配置中的HasMaxLength值增加未完成迁移?

Entity framework 实体类型配置中的HasMaxLength值增加未完成迁移?,entity-framework,ef-code-first,code-first,entity-framework-migrations,data-migration,Entity Framework,Ef Code First,Code First,Entity Framework Migrations,Data Migration,我有一个奇怪的例子,在EntityTypeConfiguration类中将HasMaxLength(仅供参考,从200增加到500)的值似乎对我创建的下一次迁移没有影响。显然,我希望对列的数据类型长度进行修改 发现这一点后,我尝试向模型中的相关属性添加MaxLength属性,但这对创建的迁移也没有影响。在这两种情况下,迁移都包含空的up和down方法 到目前为止,迁移工作一直完美无缺。我错过了什么 编辑 为了确认这一点,如果我添加了一个实体,那么我将按照预期使用相关的填充向上和向下方法进行迁移

我有一个奇怪的例子,在
EntityTypeConfiguration
类中将
HasMaxLength
(仅供参考,从200增加到500)的值似乎对我创建的下一次迁移没有影响。显然,我希望对列的数据类型长度进行修改

发现这一点后,我尝试向模型中的相关属性添加
MaxLength
属性,但这对创建的迁移也没有影响。在这两种情况下,迁移都包含空的up和down方法

到目前为止,迁移工作一直完美无缺。我错过了什么

编辑 为了确认这一点,如果我添加了一个实体,那么我将按照预期使用相关的填充向上和向下方法进行迁移

根据评论中的要求,以下是一些代码:

配置构造函数:

public Configuration()
{
    AutomaticMigrationsEnabled = false;
}
public ProjectNameContext()
        : base("ProjectName")
{
    Configuration.LazyLoadingEnabled = false;
}
DbContext构造函数:

public Configuration()
{
    AutomaticMigrationsEnabled = false;
}
public ProjectNameContext()
        : base("ProjectName")
{
    Configuration.LazyLoadingEnabled = false;
}
出于明显的原因,我不打算发布启动项目(UI)的整个配置,但连接字符串(工作正常)如下所示:

<add name="ProjectName" connectionString="server=.;database=ProjectName;Persist Security Info=False;MultipleActiveResultSets=true;Integrated Security=True" providerName="System.Data.SqlClient"/>

编辑2
我一直在试验并尝试引入一个
hascollumnname
,下一次迁移有用于列重命名的代码。如果我执行
HasColumnName
并更新
HasMaxLength
,那么下一次迁移只进行重命名,而不更改长度。非常奇怪

这个问题的答案似乎是将Entity Framework从6.1.0升级到6.1.1。这样做会导致创建一个迁移,其中包括对
HasMaxLength
值的更改。我想这可能是巧合,但这是我能归因于迁移成功创建的唯一变化

可能在数据库中,长度已经有500,请确保第一个。您使用什么命令生成迁移?您是否使用了正确的上下文、启动项目、PMC中的默认项目、连接字符串等?数据库长度在原始值200不变。使用常见的
添加迁移“MigrationNameHere”-projectname数据-startupprojectname Ui
。我已经打了很多次了,结果我记不清了,所以我认为不是这样的?请发布属于启动项目的配置构造函数、dbcontext构造函数和配置,请使用编辑按钮发布代码,未在注释中。根据请求添加了更多代码。可能在配置构造函数中未正确设置上下文,请转到数据库执行
从数据库.dbo.选择ContextKey.\uu迁移历史记录
,然后尝试将此代码放入
ContextKey=“TheValueYouSeeFromExecutingTheQuery”配置的构造函数