我有一个简单的用户表:
CREATE TABLE User
(
UserId int,
UserName nvarchar(35),
Password nvarchar(size),
);
我想在 EF6 中将其拆分为两个实体。用户和用户密码。这些代表了两种截然不同的业务需求,但碰巧存在于同一张桌子上。
所以我创建了两个实体。
public class User
{
public int Id { get; set; }
public string Username { get; set; }
}
public class UserPassword
{
public int Id { get; set; }
public string Password{ get; set; }
}
我有这样的地图
class UserMap : EntityTypeConfiguration<User>
{
public UserMap()
{
Property(p => p.Id).HasColumnName("UserId");
}
}
class PasswordMap : EntityTypeConfiguration<UserPassword>
{
public PasswordMap()
{
ToTable("User");
Property(p => p.Id).HasColumnName("UserId");
}
}
但是当我使用这些实体时,会出现以下错误:
Message = "实体类型 'UserPassword' 和 'User' 不能共享表 'User',因为它们不在同一类型层次结构中,或者它们之间没有有效的一对一外键关系和匹配的主键。"
我不想建立关系。我在按层次结构设置表时遇到问题。我不想要一个歧视者。我真的只想有两种不同的方式来谨慎地到达同一张桌子。除了创建两个上下文之外,还有其他方法吗?