实体框架一对一映射问题

时间:2009-11-19 06:51:14

标签: entity-framework

使用VS 2010 beta 2,ASP.NET MVC。

我尝试创建一个Entity框架文件并从我的数据库中获取数据。

这些关系存在一些问题,所以我开始调整周围的事情,但是我为了简单的一对一关系而不断出现以下错误

  

错误1错误113:多重性在关系'FK_UserProfiles_Users'中的角色'UserProfile'中无效。由于Dependent Role属性不是关键属性,因此Dependent Role的多重性的上限必须为*。 myEntities.edmx 2024

My Users表包含与其他表的一些其他多对多关系,但当我尝试与其他表建立一对一的关系时,会弹出该错误。

用户表

  • 用户ID
  • 用户名
  • 电子邮件

等。

UserProfiles表

  • UserProfileID
  • UserID(用户表的FK)
  • 位置
  • 生日

3 个答案:

答案 0 :(得分:66)

对于一对一关系,EF希望表使用相同的主键。实际上,如果它是真正的一对一,他们可能应该。因此,在您的示例中,如果您将UserID设置为UserProfiles表上的主键,那么您的一对一将起作用。

答案 1 :(得分:10)

我有类似的问题,但有销售和闲置的情况。

可以在没有销售的情况下存在闲置,并且可以在没有闲置的情况下进行销售。这意味着我有 0或1 0或1 的关系。

Layby引用销售,但是layby不能使用Sale的主键,而Sale不能使用Layby的主键。

我通过使用 0或1 许多关系解决了这个问题,将销售中的'Laybys'getter和setter配置为私有,然后提供了我自己的我的POCO中有'Layby'吸气剂和二传手。

答案 2 :(得分:0)

为两列UserProfileID和UserID设置复合主键