Свойства навигации не сопоставляются непосредственно с таблицами, поэтому необходимо удалить AuthProvider
из сопоставления с Users
таблицей:
Map(mc => {
mc.Properties(x => new {
x.Id,
x.Username,
x.Email
});
mc.ToTable("Users");
});
Я почти уверен, что уже где-то ответил на этот вопрос.
Edit:
Это отвечает на ваш вопрос. Вы хотели разделить сущность, и это правильное отображение для разбиения сущности. Разделение сущностей не позволяет пользователям без профиля. Как только вы используете его, у каждого пользователя должен быть профиль - это является обязательным условием для разделения сущностей. Ваши варианты:
- У вас должен быть профиль для каждого пользователя, и после этого вы можете использовать разбиение сущностей и отобразить обе таблицы на одну сущность. Если у вас нет профиля для каждого пользователя, измените базу данных и убедитесь, что у каждого пользователя есть пустой профиль.
- Если у вас нет профиля для каждого пользователя, и вы не хотите создавать пустые профили, вы не можете использовать разделение сущностей = вы не можете сопоставить эти таблицы с одной сущностью, и вы должны использовать две сущности с отношением один к одному вместо этого.
Как только вы используете разделение сущностей, оно ведет себя точно так же, как и любая другая сущность - оно всегда загружает все свойства, и это является причиной внутреннего соединения. Вы не можете загрузить только половину свойств (кроме проекции, но она по-прежнему выполняет основной запрос внутри).