Свойство только для чтения в качестве ключа в EF Core 2 - PullRequest
0 голосов
/ 14 марта 2019

Я бы хотел, чтобы EF Core 2 принял свойство только для чтения в качестве ключа. Рассмотрим следующую модель:

public class Session
{
    public string Key => $"{ClientDomain}:{SessionId}";

    public string ClientDomain { get; private set; }

    public string SessionId { get; private set; }
}

Текущий код отображения:

modelBuilder.Entity<Session>().HasKey(e => e.Key);

При попытке добавить миграцию выдается сообщение об ошибке: «Не найдено поле поддержки для свойства« Ключ »типа сущности« Сеанс », и у свойства нет установщика».

Как я могу добиться такого отображения в EF Core 2, желательно без необходимости менять класс модели только ради EF?

1 Ответ

1 голос
/ 15 марта 2019

Если ваше свойство Key возвращает уникальное значение на основе ClientDomain и SessionId, тогда представляется разумным создать составной первичный ключ

modelBuilder
    .Entity<Session>()
    .HasKey(s => new { s.ClientDomain, s.SessionId });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...