实体框架代码优先 - 非主键字段的外键
我有两个如下所示的表:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当前版本的 EF 不支持唯一索引,并且无法基于非主唯一键映射关系。
Current version of EF doesn't support unique indexes and it cannot map relations based on non primary unique keys.