Entity Framework Core 8 — сопоставление двух сущностей с одной и той же таблицей с помощью разных фильтров (PostgreSQL)C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Entity Framework Core 8 — сопоставление двух сущностей с одной и той же таблицей с помощью разных фильтров (PostgreSQL)

Сообщение Anonymous »

Я использую .NET Core 8 с Entity Framework Core для подключения к базе данных PostgreSQL. Мне нужно создать два объекта, objectA и objectB, которые ссылаются на одну и ту же таблицу, но с разными отфильтрованными данными.
Структура таблицы базы данных: Id , name, Category, где столбец категории может иметь только значение «A» или «B».
Мне нужен объектA. для представления данных из запроса SQL: выберите идентификатор, имя из теста, где категория = 'A'. Аналогично, objectB должен представлять данные, отфильтрованные по категории = 'B'.
Я получаю следующую ошибку:

Невозможно использовать таблицу «teste» для типа сущности «objetoA», поскольку она используется для типа сущности «objetoB» и, возможно, для других типов сущностей, но связь связи отсутствует. Добавьте внешний ключ к «objetoA» в свойствах первичного ключа и укажите на первичный ключ другого типа сущности, сопоставленного с «teste».

Мне нужно эти модели должны быть отдельными, потому что мне нужно динамически создавать их экземпляры во время выполнения. Есть ли у кого-нибудь идеи, как решить эту проблему?
Я уже пытался создать родительский класс и наследовать сопоставление таблиц с обоими дочерними классами
public class Pai
{
public string Id { get; set; } = string.Empty;
public string nome { get; set; } = string.Empty;
public string categoria { get; set; } = string.Empty;
}

public class objetoA : Pai { }
public class objetoB : Pai { }

na classe AppDbContext.cs

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);

modelBuilder.Entity()
.ToTable("teste")
.HasKey(p => p.Id);

modelBuilder.Entity()
.Property(p => p.Id)
.HasColumnName("Id");

modelBuilder.Entity()
.Property(p => p.nome)
.HasColumnName("nome");

modelBuilder.Entity()
.Property(p => p.categoria)
.HasColumnName("categoria");

modelBuilder.Entity()
.HasDiscriminator("categoria")
.HasValue("A")
.HasValue("B")

modelBuilder.Entity()
.HasBaseType();

modelBuilder.Entity()
.HasBaseType();
}


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Entity Framework Core: проблема при динамическом обновлении сущностей с помощью построителя моделей.
    Anonymous » » в форуме C#
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Entity Framework Core 8: обновление дочерних сущностей
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Entity Framework Core 8: обновление дочерних сущностей
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Entity Framework Core: как обрабатывать использование разных полей из одной модели?
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Entity Framework Core 8. Ошибка случайной ссылки на объект FindAsync @ System.Data.Entity.Core.Common.Internal.Materiali
    Anonymous » » в форуме C#
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous

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