<分区>
我有问题,我刚开始学习 EF Model First,我在一个点上停留了一段时间。我收到这样的错误:
“更新条目时发生错误。有关详细信息,请参阅内部异常”
我在图表上创建了一个简单的模型,生成了数据库并用 C# 编写了简单的代码以在表格中只添加一行,但错误一直出现。
我发布了带有 Diagram/Generated DLL/Simple Main/And error throwing 的截图
更大尺寸的链接:http://i.imgur.com/bKGc4wv.png
<分区>
我有问题,我刚开始学习 EF Model First,我在一个点上停留了一段时间。我收到这样的错误:
“更新条目时发生错误。有关详细信息,请参阅内部异常”
我在图表上创建了一个简单的模型,生成了数据库并用 C# 编写了简单的代码以在表格中只添加一行,但错误一直出现。
我发布了带有 Diagram/Generated DLL/Simple Main/And error throwing 的截图
更大尺寸的链接:http://i.imgur.com/bKGc4wv.png
最佳答案
打开复数化
。问题是您的模型对象使用单数名称 (Pupil
) 约定,而在您的数据库中您使用复数名称 Pupils
和 s
。
更新
这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”方法 (...)
(...) 重写此方法将避免创建具有复数名称的表。现在它将创建一个名为“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 - 先删除再创建数据库
c# - 保存时如何自动更新 Entity Framework 4 中实体的 Modified 属性?
entity-framework-5 - Code First 代码生成试图创建模型?
c# - 我如何重写此代码以避免 "Linq to entities Does not recognize method"错误