C#EF代码优先创建SQL视图查询

时间:2017-01-23 22:15:02

标签: c# sql entity-framework view ef-code-first

我试图先从EF代码创建一个视图。不幸的是,经过我的研究,我无法找到任何有关它的主题。

我可以首先使用EF数据库获取我的SQL视图查询,但无法从代码优先获取它。

有人能帮助我吗?

...谢谢

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用Sql方法在Migration中创建视图:

public partial class Migration : DbMigration
{
    public override void Up()
    {
        this.Sql("CREATE VIEW dbo.MyView AS (etc)");
    }

    public override void Down()
    {
        this.Sql("DROP VIEW dbo.MyView");
    }
}

在dbContext中将实体映射到视图没有任何问题:

public class MyDbContext : DbContext
{
    public DbQuery<MyModelView> MyView
    {
        get
        {
            // Don't track changes to query results
            return Set<MyModelView>().AsNoTracking();
        }
    }
}