删除外键属性导致异常

发布于 2024-11-03 02:31:32 字数 713 浏览 5 评论 0原文

我不想使用与 CompanyType 的外键关联(将保存外键 id 的成员),但更喜欢使用导航属性。所以我删除了 CompanyTypeId。

我得到一个与实体 Company 和 CompanyType 之间的关系相关的异常:

错误5:元素“Principal”位于 名称空间 'http://schemas.microsoft.com/ado/2008/09/edm' 内容不完整。名单 预期可能的要素: 命名空间中的“PropertyRef” 'http://schemas.microsoft.com/ado/2008/09/edm'.

在此处输入图像描述

如何从 POCO 中删除这些 id 而不会出现异常?

I don't want to use foreign key association to CompanyType (member that will hold the foreign key id) but prefer to use navigation property. So I removed the CompanyTypeId.

I get this exception that relates the relationship between entity Company and CompanyType:

Error 5: The element 'Principal' in
namespace
'http://schemas.microsoft.com/ado/2008/09/edm'
has incomplete content. List of
possible elements expected:
'PropertyRef' in namespace
'http://schemas.microsoft.com/ado/2008/09/edm'.

enter image description here

How can I remove those id's from the POCOs without getting the exception?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

森林迷了鹿 2024-11-10 02:31:32

这是外键关联和独立关联之间的区别< /a>.两个关联都使用导航属性,但只有外键关联也使用 FK 属性。您可以像 @Robbie 提到的那样全局删除它们,也可以手动更改所选关系的类型。

  • 在实体框架设计器中选择关系
  • 在属性中删除引用约束
  • 转到映射窗口并映射关系

这是我的一个测试应用程序的屏幕截图,其中 Order之间存在一对多关系>OrderLine 实体:

在此处输入图像描述

如您所见,没有 OrderIdOrderLine 实体中,关系的引用约束为空。还指定了关系的映射。

但是您永远无法从 CompanyType 中删除 Id。 Id (PK) 是强制性的。您只能在其属性中更改其可访问性。

This is the difference between Foreign key association and Independent association. Both associations use navigation properties but only Foreign key association uses FK property as well. You can either remove them globally as @Robbie mentioned or you can change the type manually for selected relation.

  • Select the relation in entity framework designer
  • In properties remove Referential constraints
  • Go to Mapping window and map the relation

Here is the screen shot from one of my testing application with one-to-many relation between Order and OrderLine entities:

enter image description here

As you can see there is no OrderId in the OrderLine entity and referential constraints of the relation are empty. Also mapping of the relation is specified.

BUT you can't never remove Id from CompanyType. Ids (PKs) are mandatory. You can only change its accessibility in its properties.

奈何桥上唱咆哮 2024-11-10 02:31:32

当您从数据库导入模型时,系统会询问您是否要:

“在模型中包含外键列”
你需要把它关掉。

在此处输入图像描述

When you imported in your Model from your DB you are asked if you want to:

"Include Foreign key columns in the model"
you need to switch this off.

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文