EF Базовый атрибут NOTKEY или Свободный API? - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть объект, который "принудительно" должен иметь свойство с именем Id .EF Core хочет использовать его в качестве ключа, но я хочу этого избежать.

builder.HasKey (e => e.Id);Свободный API делает прямо противоположное тому, что я хочу.

Позвольте мне объяснить немного ..

У меня есть сущность PlayerView и IEntityTypeConfiguration, которые определяют представление для моего DbContext.

public class PlayerView : EntityDto
{
    public Guid Id { get;  set; }

    public string FirstName { get; set; }
    public string LastName { get; set; }
    etc...

public class PlayerViewConfiguration : DataContextBaseEntityTypeConfiguration, IEntityTypeConfiguration<PlayerView>
{
    public void Configure(EntityTypeBuilder<PlayerView> builder)
    {
        builder.ToTable(nameof(PlayerView));

        builder.Metadata.IsQueryType = true;

        // builder.HasKey(e => e.Id); **//TODO THE OPPOSITE PLEASE**
    }
}

Тогда я назову var queryable = context.Query ();чтобы получить доступ к базовому представлению.

Но так как представления не могут иметь и индексировать, и, учитывая, что EF выводит индекс для свойства Id. Я получил следующую ошибку при построении модели.

Ключ {'Id'} не может быть добавлен к типу запроса 'PlayerView'.Типы запросов не могут иметь ключей.

Я хотел бы просто сказать EF Core, пожалуйста, не используйте Id в качестве ключа.

BR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...