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

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

Сообщение Anonymous »

Все это относится к EntityFrameworkCore 8.0.10, .NET 8 и Oracle 19.0.0.
У меня есть представление в моей базе данных:
< pre class="lang-sql Prettyprint-override">

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

CREATE VIEW VW_TESTVIEW AS
SELECT 'THIS IS A TEST' AS EXAMPLE
FROM DUAL;
Это просто возвращает одну запись со столбцом EXAMPLE с содержимым ЭТО ТЕСТ:
Изображение

В моем приложении .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; набор;
Когда я запускаю Add-Migration exampleView, результирующий метод Migration.Up имеет следующий CreateTable:

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

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#»