我正在使用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()
发生时会出现问题。
答案 0 :(得分:1)
正如我在评论中所述,您需要确保context
指向与您创建表格的数据库相同的数据库。
您可以通过对方法CreateSlider
进行调试并检查DB
对象来实现这一点,它具有Database
属性,该属性应该包含例外ConnectionString
。