В моей базе данных есть такое представление:
Код: Выделить всё
CREATE VIEW VW_TESTVIEW
AS
SELECT 'THIS IS A TEST' AS EXAMPLE
FROM DUAL;
< img alt="Скриншот, показывающий представление, работающее в базе данных." src="https://i.sstatic.net/XpWxLQcg.png" />
В моем приложении .NET 8 я добавил этот класс:
Код: Выделить всё
public class VW_TestView
{
public string Example { get; set; }
}
Код: Выделить всё
modelBuilder
.Entity(x =>
{
x.HasNoKey();
x.ToView("VW_TESTVIEW");
});
Код: Выделить всё
public virtual DbSet TestViews { get; set; }
< 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