连接到SQLExpress DB

时间:2017-07-10 13:42:43

标签: c# asp.net-mvc entity-framework asp.net-core-mvc scaffold

我已经使用SSMS构建了一个SQLExpress数据库,我使用以下命令创建了我的数据库的类模型。

Scaffold-DbContext "Data Source=[Removed]\SQLExpress;Initial Catalog=Warehouse;Integrated Security=True"
Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models –Verbose –Force

除非我更改DBContext属性的名称以检索实体,否则似乎所有内容都正确创建...以下是我的内容:

DB:我有一个名为"BOX"的表。这是从Scaffold-DBContext调用为其创建的类。 ID在数据库中定义为主键。

public class Box
{
    public int Id { get; set; }
    public double Height { get; set; }
    public double Width { get; set; }
    public double Length { get; set; }
}

这是为它创建的DBContext类:

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

    public DbSet<Box> Box { get; set; }
}

这是控制器调用我做到了:

    public async Task<IActionResult> Index()
    {
        return View(await _BoxDBContext.Box.ToListAsync());
    }

以上所有内容都非常合适,但我不希望我的DBcontext中要检索框的属性称为Box。我希望它像Boxes这样称呼。

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

    public DbSet<Box> Boxes { get; set; }
}


    public async Task<IActionResult> Index()
    {
        return View(await _BoxDBContext.Boxes.ToListAsync());
    }

但是当我更改名称时,它无法正常工作,说明以下错误:

  

处理请求时发生未处理的异常。

     

SqlException:无效的对象名称&#39; Boxes&#39;。

     

System.Data.SqlClient.SqlCommand + LT;&℃。   b__107_0(任务结果)

我多次清理了解决方案,重新启动了机器,但仍然发生错误...

所以我尝试了这个,我添加了一个新属性来返回完全相同的东西,但给它一个不同的名字......所以我现在有BoxesTextBoxes

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

    // I left this method here..
    public DbSet<Box> Boxes { get; set; }

    // and added this one.
    public DbSet<Box> TextBoxes { get; set; }

}

    public async Task<IActionResult> Index()
    {
        return View(await _BoxDBContext.Boxes.ToListAsync());
    }

现在可以使用???????

有谁知道为什么会这样?我显然不能这样做..

0 个答案:

没有答案