Entity Framework Code First - T-SQL 浏览量

Entity Framework Code First - T-SQL Views

我正在我的配置 Seed

上创建 SQL View
protected override void Seed(QuiverContext context)
{
    context.Database.ExecuteSqlCommand(DatabaseScripts.Views.MyView);
}

现在我想在我的 DbContext 中添加一个 DBSet 来代表我的 ViewI read that one can do this 然后像常规 table 一样使用 Entity

所以我尝试了,但它要求我添加一个我所做的迁移,但是在创建视图时 update-database 命令失败,因为首先创建了 table。

您似乎正试图在 Seed 方法中创建视图。这不是创建视图的方法(记住每次运行任何迁移时都会运行种子方法)。

更好的方法是添加迁移。这将创建一个包含 CreateTable 行的代码文件,这将使您的 table。只需删除这些行,并用创建视图的调用替换它们。

您可以使用 Sql 命令在迁移中执行自定义 Sql,例如...

Sql("CREATE VIEW myView.....");

如果你想让事情变得更健壮,你可以create an extension for migrations它允许你调用 CreateView。