c# - Entity Framework - "An error occurred while updating the entries. See the inner exception for details"

标签 c# entity-framework ef-model-first

<分区>

我有问题,我刚开始学习 EF Model First,我在一个点上停留了一段时间。我收到这样的错误:

“更新条目时发生错误。有关详细信息,请参阅内部异常”

我在图表上创建了一个简单的模型,生成了数据库并用 C# 编写了简单的代码以在表格中只添加一行,但错误一直出现。

我发布了带有 Diagram/Generated DLL/Simple Main/And error throwing 的截图

model and stuff

更大尺寸的链接:http://i.imgur.com/bKGc4wv.png

最佳答案

打开复数化。问题是您的模型对象使用单数名称 (Pupil) 约定,而在您的数据库中您使用复数名称 Pupilss

更新

post显示如何打开或关闭它。 该帖子的一些相关摘录:

打开和关闭复数

  • 在“工具”菜单上,单击“选项”。

  • 在选项对话框中,展开数据库工具。 注意:如果数据库工具节点不可见,请选择显示所有设置。

  • 单击 O/R 设计器。

  • 将 Pluralization of names 设置为 Enabled = False 以设置 O/R Designer,使其不会更改类名。

  • 将 Pluralization of names 设置为 Enabled = True 以将复数规则应用于添加到 O/R Designer 的对象的类名。

更新 2

但请注意,您应该避免复数名称。 你可以阅读here怎么做(我会在这里引用它,以防链接被破坏)。

(...) 当您使用 Entity Framework Code First 方法时,您是从模型类创建数据库表。通常 Entity Framework 会创建具有复数名称的表。这意味着如果你有一个名为 PhoneNumbers 的模型类, Entity Framework 将为这个类创建一个名为“PhoneNumbers”的表。如果您希望避免复数名称并想要像 Customer 这样的单数名称,您可以这样做 在您的 DBContext 类中,像这样重写“OnModelCreating”方法 (...)

enter image description here

(...) 重写此方法将避免创建具有复数名称的表。现在它将创建一个名为“PhoneNumber”的表,而不是“PhoneNumbers”(...)

关于c# - Entity Framework - "An error occurred while updating the entries. See the inner exception for details",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24214860/

相关文章:

c# - 在 backgroundworker 运行时显示等待光标

c# - Task.WaitAll 上的 System.AggregateException

entity-framework - EF Code First - 先删除再创建数据库

.net - EF 模型优先还是代码优先方法?

c# - 保存时如何自动更新 Entity Framework 4 中实体的 Modified 属性?

entity-framework-5 - Code First 代码生成试图创建模型?

c# - 我如何重写此代码以避免 "Linq to entities Does not recognize method"错误

c# - .net 泛型中的协方差规则

c# - 整个项目只有一个 DbContext 对象可以吗?

c# - 如何在数据库中搜索与部分字符串匹配的实体?