已成功提交对数据库的更改,但是在更新对象时发生了错误-已修订

Arkitec

我在带有SQL Compact Edition 4.0的Visual Basic(VS2010)的.NET V4.0中使用EF。我们正在构建一组简单的表单来维护一些表。一个表“ Companies”链接到另两个表(“ People”,“ CalibrationInfo”),并将“ Companys”作为父表。实体类型定义为:
<EntityType Name =“ Company”>
<Documentation>
<Summary>提供公司和收货地址的列表。</ Summary>
</ Documentation>
<Key>
<PropertyRef Name =“ CompanyID” />
< /密钥>
<Property Name =“ CompanyID” Type =“ Int32” Nullable =“ false”注释:StoreGeneratedPattern =“ Identity” />
<Property Name =“ Name” Type =“ String”
<属性名称=“ Address1”类型=“ String” MaxLength =“ 100” Unicode =“ true” FixedLength =“ false” />
<属性名称=“ Address2”类型=“ String” MaxLength =“ 100” Unicode =“ true “ FixedLength =” false“ />
<属性名称=” Address3“ Type =” String“ MaxLength =” 100“ Unicode =” true“ FixedLength =” false“ />
<属性名称=” Telephone“ Type =” String“ MaxLength =“ 30” FixedLength =“ false” Unicode =“ true” />
<属性名称=“ PrimaryContactID” Type =“ Int32” a:GetterAccess =“ Public” xmlns:a =“ http://schemas.microsoft.com/ ado / 2006/04 / codegeneration“ a:SetterAccess =”Public“ Nullable =” true“>
<Documentation>
<Summary>该公司主要联系人的可选主要联系人ID。</ Summary>
</ Documentation>
</ Property>
<Property Name =“ Disabled” Type =“ Boolean” Nullable =“ false” DefaultValue =“ false” />
<NavigationProperty Name =“ Calibrations” Relationship =“ NWCUDataStoreModel.FK_CalibrationInfo_Company” FromRole =“ Companies” ToRole =“ CalibrationInfo” />
<NavigationProperty Name =“ PrimaryContact” Relationship =“ NWCUDataStoreModel.FK_Company_PrimaryContact” FromRole =“ Company” ToRole =“ Person” />
</ EntityType>

该表单使用设置为在上下文中设置的Company的绑定源:
bsCompanies = ctx.Companies .OrderBy(“ it.Name”)

绑定源链接到导航栏。按下BindingNavigatorAddNewItem按钮将创建一个新记录。我仅在下一个字段中输入公司名称标签,然后按保存按钮。到主要联系人的链接设置为空,因此此记录没有其他关系。保存按钮执行以下操作:
RowsSaved = ctx.SaveChanges()
这将生成InvalidOperationException。内部异常是:
AcceptChanges无法继续,因为该对象的键值与另一个对象冲突...

数据库中没有其他名称设置为“ Test”的记录。异常表示记录已保存,但无法接受更改。该记录仍被标记为已添加。在此错误之后调用ctx.AcceptChanges会生成异常。

如果我直接在代码中执行此操作,而不是在表单上使用BindingSource,则其本质如下所示:将
昏暗的公司作为新公司
company.Name =“ Test”
company.PrimaryContactID =无
ctx.Companies.Add(company)
ctx 。救

我在Multipe网站上查看了其他示例,并应用了我能找到的所有修复程序,包括将PrimaryContact ID直接设置为正确的Person记录ID,并将PrimaryContact设置为Nothing。没有任何区别。

我还从模型中删除了三个表,然后重新加载它们。没有不同。

我已经在SQL Server中使用了相同的代码而没有任何问题,但是SQL Compact Edition V4.0似乎几乎没有任何作用。您会认为将单个记录存储到表中并不难。如果我们必须回到数据集,我需要做很多重新编码。

任何建议或见解表示赞赏。谢谢,尼尔

Arkitec

顺便说一句,对此的答案是使用Nuget下载Entity Framework 6.0,Entity Framework SQL Server Compact和Microsoft SQL Server Compact 4.0。然后,我下载了EF Framework 5 DB Generator .tt文件,因为EF 6版本在Visual Studio 2010中不起作用。您可以从“添加代码生成”菜单项中执行此操作,然后选择“在线模板”->“ EF 5 DBContext Generator ...”。 ,我使用以下Microsoft文章修改了该文件:使用WinForms进行数据绑定在那之后,事情开始起作用。如果没有上述更改,EF 4.0不能立即与SQL Server Compact一起使用。使用本文中描述的ObservableListSource类还有助于解决窗体上的父子关系,直到我切换到此类之前,父子关系才起作用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

恢复修订版本时,每个循环的VBA已锁定

来自分类Dev

p4集成错过了撤回的修订,这些修订在重新集成时已移至功能分支

来自分类Dev

如何获取git存储库中各修订版之间已更改文件的列表?

来自分类Dev

如何获取git存储库中各修订版之间已更改文件的列表?

来自分类Dev

与修订提交进行比较

来自分类Dev

处理一对多关系=已修订(Django)

来自分类Dev

处理一对多关系=已修订(Django)

来自分类Dev

显示两个修订之间已删除行的列表

来自分类Dev

AngularJS 最终用户过滤多个值已修订

来自分类Dev

颠覆:请说明“工作修订”与“最后提交的修订”

来自分类Dev

已成功与服务器建立连接,但是在登录过程中发生了错误。(错误号:233)

来自分类Dev

SWI Prolog Clpfd库-修订

来自分类Dev

如何获得所有修订版本中已关闭/已删除的Subversion分支的列表?

来自分类Dev

创建MYSQL数据库表?需要帮助修订

来自分类Dev

创建MYSQL数据库表?需要帮助修订

来自分类Dev

无法更新指示数据库X已启用“更改数据捕获”的元数据。返回的错误为15517

来自分类Dev

操作错误:数据库已锁定

来自分类Dev

本地存储库的Git签出修订

来自分类Dev

两个库的“链接”修订

来自分类Dev

SVN 获取存储库的修订计数

来自分类Dev

从Wikipedia修订版获取标题更改

来自分类Dev

通过滚动更新从CloudFront提供修订的文件

来自分类Dev

Jenkins构建因修订错误而失败

来自分类Dev

Laravel VentureCraft /可修订的错误迁移表

来自分类Dev

Laravel VentureCraft /可修订的错误迁移表

来自分类Dev

保存模型时未创建新修订

来自分类Dev

强制修订时,perforce不会覆盖文件

来自分类Dev

保存模型时未创建新修订

来自分类Dev

强制修订时,perforce不会覆盖文件

Related 相关文章

  1. 1

    恢复修订版本时,每个循环的VBA已锁定

  2. 2

    p4集成错过了撤回的修订,这些修订在重新集成时已移至功能分支

  3. 3

    如何获取git存储库中各修订版之间已更改文件的列表?

  4. 4

    如何获取git存储库中各修订版之间已更改文件的列表?

  5. 5

    与修订提交进行比较

  6. 6

    处理一对多关系=已修订(Django)

  7. 7

    处理一对多关系=已修订(Django)

  8. 8

    显示两个修订之间已删除行的列表

  9. 9

    AngularJS 最终用户过滤多个值已修订

  10. 10

    颠覆:请说明“工作修订”与“最后提交的修订”

  11. 11

    已成功与服务器建立连接,但是在登录过程中发生了错误。(错误号:233)

  12. 12

    SWI Prolog Clpfd库-修订

  13. 13

    如何获得所有修订版本中已关闭/已删除的Subversion分支的列表?

  14. 14

    创建MYSQL数据库表?需要帮助修订

  15. 15

    创建MYSQL数据库表?需要帮助修订

  16. 16

    无法更新指示数据库X已启用“更改数据捕获”的元数据。返回的错误为15517

  17. 17

    操作错误:数据库已锁定

  18. 18

    本地存储库的Git签出修订

  19. 19

    两个库的“链接”修订

  20. 20

    SVN 获取存储库的修订计数

  21. 21

    从Wikipedia修订版获取标题更改

  22. 22

    通过滚动更新从CloudFront提供修订的文件

  23. 23

    Jenkins构建因修订错误而失败

  24. 24

    Laravel VentureCraft /可修订的错误迁移表

  25. 25

    Laravel VentureCraft /可修订的错误迁移表

  26. 26

    保存模型时未创建新修订

  27. 27

    强制修订时,perforce不会覆盖文件

  28. 28

    保存模型时未创建新修订

  29. 29

    强制修订时,perforce不会覆盖文件

热门标签

归档