2016-08-15 69 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

相關問題