从EF Core 3.1通过代码优先创建视图

问题描述

我想通过Code First在EF Core上创建像表一样的sql视图。我怎样才能做到这一点?你能帮我吗?

解决方法

这可以帮助您

实体:

public class Personel  
{
    public string Name { get; set; }
}

DBContext:

public DbSet<Personel> Personels { get; set; }

关于模型创建:

builder.Entity<Personel>(eb => {
    eb.HasNoKey();
    eb.ToView("View_Personel");
    eb.Property(v => v.Name).HasColumnName("Name");
});

添加迁移

migrationBuilder.Sql("
    CREATE VIEW View_Personel AS
        SELECT MatchValue AS Name
        FROM Personel");

此外,您可以通过SQL First(不是DBFirst)通过SQL方法过程,实体化视图等进行创建。