System.Data.SqlClient.SqlException:无效的对象名称' dbo.Slider'

时间:2016-08-15 08:41:05

标签: c# asp.net sql-server entity-framework

我正在使用asp.NET开发Entity Framework应用程序,每当我尝试在dbo.Slider表中创建记录时,我都会收到以下异常:

  

System.Data.Entity.Infrastructure.DbUpdateException:
  更新条目时发生错误   有关详细信息,请参阅内部异常--->
  System.Data.Entity.Core.UpdateException:
  更新条目时发生错误   有关详细信息,请参阅内部异常---> System.Data.SqlClient.SqlException:
  无效的对象名称' dbo.Slider'。在......

我正在使用我创建的名为efService的实体框架服务,并在我的代码隐藏窗体上调用:

protected Services.EFService efService = new Services.EFService();

我尝试在按钮点击时创建滑块,这是我在按钮中断之前使用的代码部分:

slider.DateCreated = DateTime.Now;
slider.Caption = txbPhotoCaptionCreate.Text;
slider.IsPublic = cbxPhotoPublicCreate.Checked;
slider.Path = string.Empty;
slider.ThumbnailPath = string.Empty;
slider.DisplayPath = string.Empty;

int sliderId = efService.CreateSlider(slider);  // It breaks here

以下是我所做的CreateSlider efService

public int CreateSlider(Models.EF.Slider slider)
{
    DB.Sliders.Add(slider);
    DB.SaveChanges();

    return slider.Id;
}

这一切都适用于我的其他几乎完全相同功能的表。

这是我用来创建Slider表的SQL:

CREATE TABLE [dbo].[Slider] 
(
    [Id]              INT IDENTITY(1,1)  NOT NULL,
    [Caption]         VARCHAR (50)       NOT NULL,
    [Position]        INT                NOT NULL DEFAULT 1,
    [IsPublic]        BIT                NOT NULL DEFAULT 1,
    [Path]            NVARCHAR (250)     NULL,
    [ThumbnailPath]   NVARCHAR (250)     NULL,
    [DisplayPath]     NVARCHAR (250)     NULL,
    [DateCreated]     DATETIME           NOT NULL,

    PRIMARY KEY CLUSTERED ([Id] ASC)
);

没有构建错误,整个应用程序运行正常,除非我尝试为Slider创建记录。通过大量调试,我可以得出结论,DB.SaveChanges()发生时会出现问题。

1 个答案:

答案 0 :(得分:1)

正如我在评论中所述,您需要确保context指向与您创建表格的数据库相同的数据库。

您可以通过对方法CreateSlider进行调试并检查DB对象来实现这一点,它具有Database属性,该属性应该包含例外ConnectionString