私は単純なユーザーテーブルを持っています:
CREATE TABLE User
(
UserId int,
UserName nvarchar(35),
Password nvarchar(size),
);
これを EF6 で 2 つのエンティティに分割したいと考えています。ユーザーとユーザーパスワード。これらは 2 つの非常に異なるビジネス ニーズを表していますが、たまたま同じテーブルに存在します。
そこで、2 つのエンティティを作成します。
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' を共有できません。これらは同じタイプ階層にないか、それらの間で主キーが一致する有効な 1 対 1 の外部キー関係を持たないためです。"
関係を作りたくない。階層ごとにテーブルを設定するのに問題があります。私は差別者を望んでいません。私は本当に、目立たない同じテーブルに到達するための2つの別々の方法が必要です. 2 つのコンテキストを作成する以外にこれを行う方法はありますか?