Entity Framework Core ToView все еще создает таблицу в процессе миграцииC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Entity Framework Core ToView все еще создает таблицу в процессе миграции

Сообщение Anonymous »

Все это относится к Entity Framework Core v8.0.10, .NET 8 и Oracle 19.0.0.
В моей базе данных есть такое представление:

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

CREATE VIEW VW_TESTVIEW
AS
SELECT 'THIS IS A TEST' AS EXAMPLE
FROM DUAL;
Это просто возвращает одну запись со столбцом EXAMPLE с содержимым ЭТО ТЕСТ:
< img alt="Скриншот, показывающий представление, работающее в базе данных." src="https://i.sstatic.net/XpWxLQcg.png" />
В моем приложении .NET 8 я добавил этот класс:

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

public class VW_TestView
{
public string Example { get; set; }
}
В моем методе DbContext.OnModelCreating я добавил следующий код:

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

modelBuilder
.Entity(x =>
{
x.HasNoKey();
x.ToView("VW_TESTVIEW");
});
Кроме того, я добавил следующее свойство DbContext:

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

public virtual DbSet TestViews { get; set; }
Когда я запускаю Add-Migration exampleView, результирующий метод Migration.Up имеет следующий CreateTable:
< pre class="lang-cs Prettyprint-override">

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

migrationBuilder.CreateTable(
name: "VW_TESTVIEW",
columns: table => new
{
EXAMPLE = table.Column(type: "NVARCHAR2(2000)", nullable: false)
},
constraints: table =>
{
});
В результате применить эту миграцию не удается, поскольку объект с таким же именем уже существует.
Если я игнорирую объект из модели, я по-прежнему не могу использовать TestViews DbSet, поскольку он возвращает эту ошибку:

System.InvalidOperationException: невозможно создать DbSet для «VW_TestView», поскольку этот тип не включен в модель для контекста
  • Как правильно создать класс, представляющий представление базы данных с помощью EF Core ?
  • Почему ToView не делает того, что должен делать? («Настраивает представление, которому соответствует тип сущности при выборе реляционной базы данных.»)


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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