【发布时间】:2016-08-15 08:41:05
【问题描述】:
我正在使用 Entity Framework 开发一个 asp.NET 应用程序,每当我尝试在我的 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()出现时。
【问题讨论】:
-
您确定 EF 指向与您执行 SQL 查询的数据库相同的数据库吗?调试该方法并检查
DB对象,它有一个Database属性,应该包含ConnectionString。 -
是的,就像我的其他桌子一样
-
@user3185569 这让我走上了正轨。我在本地创建了数据库,但应用程序使用的是云数据库。所以问题实际上出在网络配置中,我指向了错误的数据库。如果你愿意,你可以回答。
-
刚刚回答..
-
非常感谢 :)
标签: c# asp.net sql-server entity-framework