2016-08-15 142 views
1

我使用Entity Framework开发一个asp.NET应用程序,我得到以下异常每当我试图在我的dbo.Slider表创建一个记录:System.Data.SqlClient.SqlException:无效的对象名称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()

+2

确定EF是否指向与执行该SQL查询相同的数据库?调试该方法并检查'DB'对象,它有一个'Database'属性,它应该包含'ConnectionString'。 – user3185569

+0

是的,就像它对我的其他表 –

+0

@ user3185569,使我在正确的轨道上。我在本地创建了数据库,但应用程序使用了云数据库。所以这个问题实际上是在我的Web配置中指向错误的数据库。如果你愿意,你可以回答。 –

回答

1

正如我在注释中规定,需要通过调试运行方法CreateSlider和检查,以确保在指向同一个数据库,你在创建表的一个context

你可以做DB对象,它有一个Database属性,应该包含例外ConnectionString

相关问题