【问题标题】:An error occurred while updating the entries when SaveChanges()SaveChanges() 时更新条目时出错
【发布时间】:2016-04-01 17:42:54
【问题描述】:

我使用实体框架编写应用程序,我在“ButtonSave”中编写任何代码,如下所示:

_objEntities = new PCApp_TaxitechEntities();
contact objModel = new contact();
objModel.Name = customerName;
objModel.Phone = PhoneNumber;
_objEntities.contacts.Add(objModel);
int Result = _objEntities.SaveChanges();

这会在行中引发异常:

int Result = _objEntities.SaveChanges();

带有如下消息:

更新条目时出错:{"Invalid object name 'dbo.contact'."}

这是我的连接字符串:

<connectionStrings> <add name="PCApp_TaxitechEntities" connectionString="Data Source=.\sqlexpress;Initial Catalog=PCApp_Taxitech; User ID=sa;Password="/> </connectionStrings>

当然,在 SQL Server 中,我有数据库 PCApp_Taxitech

我不知道这个应用程序何时调用SaveChanges()方法抛出异常。

【问题讨论】:

  • 你在那个数据库中有一个叫做contact的表吗?
  • 你是如何配置你的 DbSet 的?
  • @VănLộc 您的表名为 contacts(复数),但 EF 正在尝试写入名为 contact(单数)的表。检查您的 EDMX 并确保引用了正确的表格。
  • 一位开发人员在离开我的公司后交出了一个项目。但是数据库丢失了,我看到了 .edmx 文件和Generate database from model。我换了connectionString
  • 好吧,我不知道你的项目,没有看到你的 edmx 文件或你如何创建你的数据库......但是错误消息与你的屏幕截图(这是我所看到的)很清楚:EF 正在尝试写入dbo.contact,您的表称为dbo.contacts(不是contact),因此出现错误。您的错误与您发布的代码(调用SaveChanges 除外)和您的连接字符串无关,只要它连接到该数据库

标签: c# database entity-framework


【解决方案1】:

问题在于,不知何故,您的数据库表名为 contacts(复数),而 Entity Framework 试图写入名为 contact(单数)的表。

简单的解决方案是重命名表,但如果您已从 EDMX 生成数据库,明智的做法是修改它并查看它可能在哪里复数了数据库表名,而不是映射表名字(听起来很奇怪)。

【讨论】:

    猜你喜欢
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    相关资源
    最近更新 更多