Я использую .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
Entity Framework Core 8 — сопоставление двух сущностей с одной и той же таблицей с помощью разных фильтров (PostgreSQL) ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Entity Framework Core: как обрабатывать использование разных полей из одной модели?
Anonymous » » в форуме C# - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-