C# 代码优先实体框架在模型没有';不改变
我有以下类(继承自C# 代码优先实体框架在模型没有';不改变,c#,entity-framework-6,automatic-migration,C#,Entity Framework 6,Automatic Migration,我有以下类(继承自BaseEntity,它只有一个int-Id属性): 它由以下类映射: public class UserMap : EntityTypeConfiguration<User> { public UserMap() { HasKey(t => t.Id); Property(t => t.Created); Property(t => t.CustomData); Pr
BaseEntity
,它只有一个int-Id
属性):
它由以下类映射:
public class UserMap : EntityTypeConfiguration<User>
{
public UserMap()
{
HasKey(t => t.Id);
Property(t => t.Created);
Property(t => t.CustomData);
Property(t => t.Email);
Property(t => t.FailedLogInAttempts);
Property(t => t.FirstName);
Property(t => t.LastIpAddress);
Property(t => t.LastLogon).IsOptional();
Property(t => t.LastName);
Property(t => t.LockedOut);
Property(t => t.Password);
}
}
我还使用以下内容自定义了我的迁移配置,以便迁移是自动的:
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
我确信这是由于我做了一些愚蠢的事情,但由于不是每次我清理=>重建=>运行项目时都会发生这种情况,我发现很难找到问题所在
重述:
- 我有一个未更改的模型(包括名称空间等,我创建的类中模型的属性类型等)
- 有时,当我运行项目时,会删除并重新创建与此模型相关的表
AutomaticMigrationsEnabled = false;
然后,仅当使用指向实体项目的控制台对模型进行更改时,才更新模型:
add-migration [Migrator_Name]
update-database
问题是,我的模型分布在多个程序集上,因此它不会拾取该程序集之外的模型。此外,我仍然会发现模型与DB错误不匹配?我还没有处理过这种情况,但您可以尝试逐个更新每个程序集的每个模型,看看是否有效。您可以发布MigrateDatabaseToLatestVersion类的代码吗?要确保您的类不是从
DropCreateDatabaseAlways
或DropCreateDatabaseIfModelChanges
派生的。Hi@DipenShah该类只是标准的System.Data.Entity.MigratedDatabaseToLateStVersion
类。完全忘记了那个!您是否有可能创建一个小项目来复制该问题。我用您指定的类创建了一个小项目,但它的行为与预期的一样,您是否尝试添加自动迁移DataLossAllowed=false代码>?您是否有可以发布的Seed()
方法?您正在检查是否通过“反复对表发送select查询”来删除/重新创建表!!?为什么?您的表中没有任何数据吗?如果没有丢失数据,则不会删除/重新创建该表。
AutomaticMigrationsEnabled = false;
add-migration [Migrator_Name]
update-database