“如何修复” SqlException:无效的对象名称“订单”。 databatase的位置?

时间:2019-05-16 13:36:52

标签: c# asp.net sql-server

我按照此视频https://docs.microsoft.com/en-us/visualstudio/get-started/csharp/tutorial-aspnet-core-ef-step-03?view=vs-2019中的说明尝试添加产品数据库。然后经过一些(最初是错误的故障,我首先崩溃了,该网站要求我应用迁移,然后点击“应用”),然后最终成功了。

说明告诉您创建一个新的models文件夹,然后向其中添加一个类。然后在页面折叠中为模型添加一个新文件夹,然后添加一个新的脚手架项目(实体为fw的剃须刀页面(crud))。然后,我添加了以下代码以确保在program.cs中创建了数据库,以确保已创建数据库

  var host = CreateWebHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                try
                {
                    var context = services.GetRequiredService<EisenMNdbContext>();
                    context.Database.EnsureCreated();
                }
                catch (Exception ex)
                {
                    var logger = services.GetRequiredService<ILogger<Program>>();
                    logger.LogError(ex, "An error occurred creating the DB.");
                }
            }

            host.Run();

我知道,它适用于产品。 然后,我想添加第二个称为orders的模型/应用程序,因此我向模型添加了一个nother类,然后创建了另一个文件夹并添加了一个脚手架项目,执行相同的过程,但是这次我得到了:

SqlException:对象名称'Order'无效。

System.Data.SqlClient.SqlCommand + <> c.b__122_0(任务结果)

我在这样的链接中注意到

SqlException (0x80131904): Invalid object name 'dbo.Categories'

人们常常以错误的名称来命名数据库表。有没有可以编辑的地方?list of file directories

如果有帮助,这里还有一些错误日志:

qlException: Invalid object name 'Orders'.

    System.Data.SqlClient.SqlCommand+<>c.<ExecuteDbDataReaderAsync>b__122_0(Task<SqlDataReader> result)
    System.Threading.Tasks.ContinuationResultTaskFromResultTask<TAntecedentResult, TResult>.InnerInvoke()
    System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, object state)
    System.Threading.Tasks.Task.ExecuteWithThreadLocal(ref Task currentTaskSlot)
    Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteAsync(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary<string, object> parameterValues, CancellationToken cancellationToken)

如果重要的话,我的数据库上下文看起来像这样

    {
        public EisenMNdbContext (DbContextOptions<EisenMNdbContext> options)
            : base(options)
        {
        }

        public DbSet<EisenMN.Models.Product> Products { get; set; }

        public DbSet<EisenMN.Models.Order> Orders { get; set; }


    }
}

1 个答案:

答案 0 :(得分:0)

Migg的链接很有帮助! docs.microsoft.com/zh-CN/ef/core/managing-schemas/migrations/…使用Powershell并确保已正确应用了迁移。