实体框架代码优先 - 非主键字段的外键

发布于 2024-12-05 10:36:52 字数 647 浏览 0 评论 0原文

我有两个如下所示的表:

dbo.ReviewType
    ReviewTypeId INT PRIMARY KEY
    ShortName CHAR(1) - Unique Index
    Description

dbo.Review
   ReviewId INT PRIMARY KEY
   ReviewType_ShortName CHAR(1) - FK to ReviewType
   ...

评论总是有一个评论类型。
ReviewType 可以与许多评论相关联。

我在使用 Code First Fluent API 在实体框架中映射此问题时遇到问题。 看起来它不喜欢我使用不映射到主键的外键。我使用唯一约束/索引的外键而不是主键。

如何使用 C# 在实体框架中正确映射它?

我应该注意,我现在这样做的方式给了我这个错误:

System.Data.Edm.EdmAssociationConstraint: :引用约束的从属角色中的所有属性类型必须与主体角色中相应的属性类型相同。实体“Review”上的属性“ReviewTypeCode”类型与引用约束“ReviewType_Reviews”中实体“ReviewType”上的属性“Id”类型不匹配。

I have two tables that look like this:

dbo.ReviewType
    ReviewTypeId INT PRIMARY KEY
    ShortName CHAR(1) - Unique Index
    Description

dbo.Review
   ReviewId INT PRIMARY KEY
   ReviewType_ShortName CHAR(1) - FK to ReviewType
   ...

A Review always has a ReviewType.
A ReviewType can be associated with many reviews.

I'm having trouble mapping this in Entity Framework using the Code First Fluent API.
It seems like it does not like me using a foreign key that doesn't map to the Primary Key. I'm using a foreign key to a Unique Constraint/Index instead of to the Primary Key.

How can I map this properly in Entity Framework using C#?

I should note that the way I am doing it right now is giving me this error:

System.Data.Edm.EdmAssociationConstraint: : The types of all properties in the Dependent Role of a referential constraint must be the same as the corresponding property types in the Principal Role. The type of property 'ReviewTypeCode' on entity Review' does not match the type of property 'Id' on entity 'ReviewType' in the referential constraint 'ReviewType_Reviews'.

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

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

发布评论

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

评论(1

下壹個目標 2024-12-12 10:36:52

当前版本的 EF 不支持唯一索引,并且无法基于非主唯一键映射关系。

Current version of EF doesn't support unique indexes and it cannot map relations based on non primary unique keys.

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