У меня есть объект, который "принудительно" должен иметь свойство с именем 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