Joa*_*iro 6 asp.net ef-code-first asp.net-identity
我想使用 IdentityUser,但我不想使用声明或登录。因此,我想从我的数据库中删除这些表。基于一些搜索,我实现了我的数据库上下文(代码优先),如下所示:
public class MainDb : IdentityDbContext
{
(...)
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("User")
.Ignore(x => x.AccessFailedCount)
.Ignore(x => x.Claims)
.Ignore(x => x.EmailConfirmed)
.Ignore(x => x.LockoutEnabled)
.Ignore(x => x.LockoutEndDateUtc)
.Ignore(x => x.Logins)
.Ignore(x => x.PhoneNumberConfirmed)
.Ignore(x => x.TwoFactorEnabled);
modelBuilder.Ignore<IdentityUserLogin>();
modelBuilder.Ignore<IdentityUserClaim>();
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试创建迁移(程序包管理器控制台中的“添加迁移用户”)时,出现以下错误:
The navigation property 'Claims' is not a declared property on type 'IdentityUser'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property.
Run Code Online (Sandbox Code Playgroud)
如果我删除引用声明和登录的行,则会创建迁移,并忽略其他属性:
public class MainDb : IdentityDbContext
{
(...)
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("User")
.Ignore(x => x.AccessFailedCount)
.Ignore(x => x.EmailConfirmed)
.Ignore(x => x.LockoutEnabled)
.Ignore(x => x.LockoutEndDateUtc)
.Ignore(x => x.PhoneNumberConfirmed)
.Ignore(x => x.TwoFactorEnabled);
}
}
Run Code Online (Sandbox Code Playgroud)
我还尝试覆盖我的 User 类(IdentityUser 的子级)中的声明,添加 set 访问器,但无法在覆盖时添加新的访问器。
根据this,这是一个回答的类似问题,似乎这曾经是可能的,但现在我无法找到解决方案。
我错过了什么吗?
| 归档时间: |
|
| 查看次数: |
1400 次 |
| 最近记录: |