基本类型为 IdentityUser 时如何映射鉴别器列?
How to Map Discriminator Column when base type is IdentittyUser?
我自定义了IdentityUser
并命名为User
。现在将 User
扩展为 Doctor
和 Secretary
.
using Microsoft.AspNetCore.Identity;
//...
public class User : IdentityUser
{
public string UserType {get; set;}
//some props
}
public class Doctor : User
{
//some props
}
public class Secretary : User
{
//some props
}
//...
我知道 EF Core 会创建一个鉴别器作为阴影 属性,但我想将此鉴别器映射到 User.UserType 属性。所以这是我在 DbContext 上的配置:
builder.Entity<User>()
.HasDiscriminator(u=>u.UserType)
.HasValue<User>("user")
.HasValue<Doctor>("doctor")
.HasValue<Secretary>("secretary");
添加迁移时出现此错误:
The CLR property 'UserType' cannot be added to entity type 'IdentityUser' because it is declared on the CLR type 'User'.
为什么会出现这个错误?这是我走的好方法吗?
你知道什么正确的方法来制造不同类型的用户吗?
我刚换了
MyDbContext : IdentityDbContext {...}
至
MyDbContext : IdentityDbContext<User> {...}
问题已解决。
我自定义了IdentityUser
并命名为User
。现在将 User
扩展为 Doctor
和 Secretary
.
using Microsoft.AspNetCore.Identity;
//...
public class User : IdentityUser
{
public string UserType {get; set;}
//some props
}
public class Doctor : User
{
//some props
}
public class Secretary : User
{
//some props
}
//...
我知道 EF Core 会创建一个鉴别器作为阴影 属性,但我想将此鉴别器映射到 User.UserType 属性。所以这是我在 DbContext 上的配置:
builder.Entity<User>()
.HasDiscriminator(u=>u.UserType)
.HasValue<User>("user")
.HasValue<Doctor>("doctor")
.HasValue<Secretary>("secretary");
添加迁移时出现此错误:
The CLR property 'UserType' cannot be added to entity type 'IdentityUser' because it is declared on the CLR type 'User'.
为什么会出现这个错误?这是我走的好方法吗?
你知道什么正确的方法来制造不同类型的用户吗?
我刚换了
MyDbContext : IdentityDbContext {...}
至
MyDbContext : IdentityDbContext<User> {...}
问题已解决。