Я хотел бы использовать представление для добавления информации в такую таблицу
public class PocoTable
{
public int Id { get; set; }
}
public partial class ImportStatingRecordError : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql(@"
CREATE VIEW PocoView
AS
SELECT Id, ISNULL(l.InterestingValue, '?') AS InterestingValue
FROM PocoTable t
LEFT JOIN OtherTable o ON t.Id = o.PocoTableId
");
}
}
public class PocoView : PocoTable
{
public string InterestingValue { get; set; }
}
public class ApplicationDbContext : DbContext
{
public DbSet<PocoTable> PocoTables { get; set; }
public DbSet<PocoView> PocoViews { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<PocoView>().ToView("PocoView").HasKey(z => new z.Id);
}
}
Но EntityFramework (ядро) не имеет его, потому что:
Тип объекта «PocoView» не может быть сопоставлен с таблицей, поскольку он является производным от «PocoTable». В таблицу можно сопоставить только базовые типы сущностей.
Можно ли заставить это работать? Или можно как-то иначе?