Разделение таблицы - возможно ли разделить таблицу на две совершенно независимые сущности?

У меня есть простая таблица пользователей:

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");
    }
}

Но когда я использую эти объекты, я получаю следующую ошибку:

Сообщение = "Типы сущностей" UserPassword "и" Пользователь "не могут совместно использовать таблицу" Пользователь ", потому что они не находятся в одной иерархии типов или не имеют действительного отношения один к одному внешнего ключа с соответствующими первичными ключами между ними."

Я не хочу создавать отношения. У меня проблемы с настройкой таблицы в иерархии. Я не хочу дискриминатора. Я действительно хочу иметь два отдельных способа добраться до одной и той же таблицы, которые являются незаметными. Есть ли способ сделать это, кроме создания двух контекстов?

1 ответ

Решение

Ах. Согласно моему комментарию, если вы создали обновляемый вид для UserPassword тогда вы можете использовать это как таблицу для сущности. EF не будет ни знать, ни заботиться об обновлении, которое фактически обновляет таблицу пользователей, и наоборот.

Другие вопросы по тегам