繁体   English   中英

SqlException: 无效的对象名称 c#

[英]SqlException: Invalid object name c#

我正在尝试在我的 .net core 2.0 Web 应用程序中连接到 localDB。 我使用 SQL express 创建了一个本地数据库。

我的 appsettings.json 看起来像这样

{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
  "Default": "Warning"
}
},

"ConnectionStrings": {
"DefaultConnection": "Data Source=(LocalDb)\\MSSQLLocalDB;Initial Catalog=Shopping;Integrated Security=True;Connect Timeout=60;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
}

}

我的上下文文件看起来像这样

    public class ProductContext : DbContext
{
    public ProductContext(DbContextOptions<ProductContext> options) 
        :base(options)
    {

    }

    public DbSet<Product> Products { get; set; }
}

我的启动文件传递这样的上下文

services.AddDbContext<ProductContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

当我尝试从数据库中获取我的产品时

        try
        {
            var d = await _context.Products.ToListAsync();
            return View(d);

        }
        catch (Exception e)
        {

        }

我抛出这个异常

“无效的对象名称‘产品’。”

我也在此处添加我的数据库图像

在此处输入图片说明

我假设它与数据库连接有关?

我如何提供文件的路径?

看起来您在数据库中没有表Products

  1. 可能需要在 Model 上使用表映射属性( [Table("Product")] )指定不同的表名,或者在数据库上开始迁移/初始化(如果这还没有发生)。
  2. 如果连接有问题 - 错误就是这个,但看起来您直接从 sql server 收到错误( "Invalid object name 'Products'."

您可以在ProductContext OnModelCreating方法中使用 fluent API 将数据库表映射到您的模型。 这样您就不需要在模型中添加属性。

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Product>()
            .ToTable("Product");
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM