【问题标题】:Entity Framework Code First - Foreign Key to non primary key field实体框架代码优先 - 非主键字段的外键
【发布时间】:2016-06-20 22:34:20
【问题描述】:

我有两个如下所示的表:

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。
一个 ReviewType 可以与许多评论相关联。

我无法使用 Code First Fluent API 在实体框架中映射它。 似乎它不喜欢我使用不映射到主键的外键。我使用的是唯一约束/索引的外键,而不是主键。

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

我应该注意到我现在的做法是给我这个错误:

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

【问题讨论】:

  • 您为什么会选择这种方法?为 ReviewTypeId 添加一个 FK 而不是 ShortName 将解决您的问题。
  • 因为它超出了我的控制范围。我意识到这可能不是最好的解决方案,但我没有设计数据库。我正在尝试使用 Fluent API 的现有模式映射模型。

标签: c# entity-framework-4.1 ef-code-first fluent-interface


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2013-01-15
  • 2016-10-17
  • 2011-08-05
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-10
  • 2015-02-24
相关资源
最近更新 更多