Entity Framework 第二次迁移时出现核心编译器错误
Entity Framework Core compiler errors on second migration
-
c#
-
entity-framework-migrations
-
entity-framework-core
-
entity-framework-core-migrations
-
entity-framework-core-2.2
我有一个 DBContext(继承自 IdentityDbContext)包含 ASP.NET 身份表和一些自定义表。
我为它创建了一个迁移,效果很好。
现在我向 DbContext 添加了一些 DBset 并调用了
dotnet ef migrations add SecondMigration ...
这会导致在创建迁移后出现 2 个编译器错误。
Duplicate 'DbContext' attribute
和
Type 'IdDbContext' already defines a member called 'BuildModel' with the same paramter types.
我不明白为什么会这样,因为两天前我在另一个项目中做了完全相同的事情(对于不从 identitydbcontext 继承的不同 dbcontext)并且它没有问题。
这件事让我现在已经有点发疯了......
知道我第二次遇到编译器错误的原因吗?
终于找到原因了。不幸的是,这不是问题的根源,但至少可以手动修复。
添加迁移命令为每个迁移创建一个命名空间。
所以我有...Migrations.FirstMigration 和...Migrations.SecondMigration
在创建第二个迁移期间,它会创建文件
- Timestamp_SecondMigration.cs
- Timestamp_SecondMigration.Designer.cs
- IdDbContextModelSnapshot.cs
前两个文件是在命名空间 SecondMigration 中创建的,但由于某种原因,它在命名空间 FirstMigration 中创建了第三个文件。这导致了问题。
只需将命名空间从 FirstMigration 更改为 SecondMigration,编译器错误就消失了...
希望这不会有任何我还不知道的负面影响...
如果您有 1 个 DbContext 和 3 个迁移,应该有 1 个 ModelSnapshot 还是应该有 3 个 ModelSnapshot?
c#
entity-framework-migrations
entity-framework-core
entity-framework-core-migrations
entity-framework-core-2.2
我有一个 DBContext(继承自 IdentityDbContext)包含 ASP.NET 身份表和一些自定义表。
我为它创建了一个迁移,效果很好。
现在我向 DbContext 添加了一些 DBset 并调用了
dotnet ef migrations add SecondMigration ...
这会导致在创建迁移后出现 2 个编译器错误。
Duplicate 'DbContext' attribute
和
Type 'IdDbContext' already defines a member called 'BuildModel' with the same paramter types.
我不明白为什么会这样,因为两天前我在另一个项目中做了完全相同的事情(对于不从 identitydbcontext 继承的不同 dbcontext)并且它没有问题。
这件事让我现在已经有点发疯了......
知道我第二次遇到编译器错误的原因吗?
终于找到原因了。不幸的是,这不是问题的根源,但至少可以手动修复。
添加迁移命令为每个迁移创建一个命名空间。
所以我有...Migrations.FirstMigration 和...Migrations.SecondMigration
在创建第二个迁移期间,它会创建文件
- Timestamp_SecondMigration.cs
- Timestamp_SecondMigration.Designer.cs
- IdDbContextModelSnapshot.cs
前两个文件是在命名空间 SecondMigration 中创建的,但由于某种原因,它在命名空间 FirstMigration 中创建了第三个文件。这导致了问题。
只需将命名空间从 FirstMigration 更改为 SecondMigration,编译器错误就消失了...
希望这不会有任何我还不知道的负面影响...
如果您有 1 个 DbContext 和 3 个迁移,应该有 1 个 ModelSnapshot 还是应该有 3 个 ModelSnapshot?