当前位置 : 首页 » 互动问答 » 正文

实体框架核心 - 如何访问Context.Database.Migrate()

分类 : 互动问答 | 发布时间 : 2018-04-27 18:43:24 | 评论 : 1 | 浏览 : 42 | 喜欢 : 1

我刚刚开始使用EF Core和Net Core,但遇到了一个问题,我找不到任何答案。

我正在使用SQLite数据库进行存储的控制台应用程序。我正在测试的东西,并与上下文工作正常。我的示例程序运行良好。请注意,我最初使用迁移来创建数据库。

现在,当我完成这个应用程序时,我想确保数据库存在。正如其他文章所述,这应该使用 ctx.Database.Migrate()完成。但是我仍然无法访问此方法。所以我的问题是我需要做些什么才能访问它?我是否缺少添加扩展方法的包?我需要配置更多的东西吗?

请原谅这个非常基本的问题,但是我找不到任何关于这个的东西。所以如果我只是不知道在哪里看,我也会很高兴看到一个阅读推荐。

 using System;
使用MyLog.NetCore.Models;
使用MyLog.NetCore.DataAccess;

命名空间MyLog.NetCore
{
    内部课程
    {
        #区域专用方法

        private static void Main(string [] args)
        {
            使用(var ctx = new MyLogContext())
            {
                ctx.Add(新的PartialLogEntry {PartialLogEntryID = 1,StartDateTime = 1,Title =“Test”});
                var count = ctx.SaveChanges();
                Console.WriteLine($“{count} changes saved to database!”);

                Console.WriteLine();
                Console.WriteLine(“数据库中的所有部分条目:”);
                foreach(ctx.PartialLogEntries中的var条目)
                {
                    Console.WriteLine($“ID:{entry.PartialLogEntryID} \ tStart:{entry.StartDateTime} \ tTitle:{entry.Title}”);
                }
            }

            到Console.ReadLine();
        }

        #endregion私有方法
    }
}

回答(1)

  • 1楼
  • 许多EF Core方法是作为扩展方法实现的。为了使它们可用,你需要的第一件事是:使用Microsoft.EntityFrameworkCore的

    
    

    这个特定的方法在驻留在 RelationalDatabaseFacadeExtensions 程序集中的 Microsoft.EntityFrameworkCore.Relational中定义,因此请确保引用它。

相关阅读: