Как запрашивать все поля модели наследования TPH в EF CoreC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как запрашивать все поля модели наследования TPH в EF Core

Сообщение Anonymous »

Я внедряю наследование таблицы в иерархию (TPH) в моем проекте с использованием основного ядра Entity Framework (EF Core). Моя цель - запросить все поля объекта компонента и получить унаследованные модели (

Код: Выделить всё

TextField
, numberfield и т. Д.) С их конкретными свойствами.
Вот упрощенная версия моих моделей:

Код: Выделить всё

public class Component : BaseEntity
{
public Guid Id { get; set; }
public required string Name { get; set; }
public ICollection Fields { get; set; } = [];
}

public abstract class Field
{
public Guid Id { get; set; }
public required string Name { get; set; }
public FieldType Type { get; set; }
public Guid ComponentId { get; set; }
public Component? Component { get; set; }
}

public class TextField : Field
{
public int? MaxLength { get; set; }
public bool IsMultiline { get; set; }
}

public class NumberField : Field
{
public decimal? MinValue { get; set; }
public decimal? MaxValue { get; set; }
}

protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity(builder =>
{
builder
.HasDiscriminator(f => f.Type)
.HasValue(FieldType.Text)
.HasValue(FieldType.Number)
.HasValue(FieldType.OpenList);
});

builder.Entity(builder =>
{
builder.Property(t => t.MaxLength).HasColumnName("MaxLength");
builder.Property(t => t.IsMultiline).HasColumnName("IsMultiline");
});

builder.Entity(builder =>
{
builder.Property(n => n.MinValue).HasColumnName("MinValue");
builder.Property(n => n.MaxValue).HasColumnName("MaxValue");
});
}
< /code>
Проблема:
Мне нужно запросить все поля объекта компонента и получить унаследованные модели (TextField
, numberfield и т. Д.) С их конкретными свойствами. Тем не менее, я изо всех сил пытаюсь достичь этого. Используйте Mapperly для проекции, но он не поддерживает этот вариант использования. Чтобы создать теневые иностранные ключи, которые вызывали проблемы. . < /p>
Вопрос:
Как я могу запросить все поля объекта компонента и получить унаследованные модели с их конкретными свойствами в EF Core? Есть ли лучшие практики или альтернативные подходы для обработки этого сценария?

Подробнее здесь: https://stackoverflow.com/questions/793 ... in-ef-core
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как запросить все поля модели наследования TPH в Entity Framework Core
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как запросить все поля модели наследования TPH в ядре фреймворка Entity
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как запросить все поля модели наследования TPH?
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Решение проблем наследования и миграции TPH в Entity Framework Core с многопроектной архитектурой
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Решение проблем наследования и миграции TPH в Entity Framework Core с многопроектной архитектурой
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»