繁体   English   中英

如何使用“模型优先”方法在EF4中创建1x0..1关联?

[英]How do I create a 1x0..1 association in EF4 using Model-First approach?

考虑以下示例模型:

  • 有0..1用户
  • 用户有1个人

尝试1:

  • 我在模型设计器上将关联从“ Person拖动到“ User ”。
  • 我已固定基数以满足我的需求(默认值为1xN)
  • 我从模型生成了DDL

问题:

  • 输出的User表具有一个Person_id列,没有唯一约束。 也就是说,它不是1x1关系,因为许多用户可以引用同一个人。 这里一定有问题

尝试2:

  • 在模型设计器上拖拉了从“人”到“用户”的关联。
  • 修复了可满足我需求的基数(默认为1xN)
  • 选择关联,然后单击属性窗口上的“ Referential Constraint按钮以编辑关联
  • 选定人员为委托人,用户为受抚养人
  • 选择“ Principal Key为“ Id”,“ Dependent Property也为“ ID”(我读过某个地方,我应该对两种类型使用相同的键)

问题:

我运行以下代码:

using (var context = new Locadora())
{
    User user = new User ();
    user.PasswordHash = "hash";
    user.Pessoa = new Person();
    user.Pessoa.Nome = "André";

    context.Usuários.AddObject(user);

    context.SaveChanges();
}
  • SaveChanges触发此异常:

ReferentialConstraint中的从属属性映射到商店生成的列。 列:“ Id”

所以我现在选择不了了。 我不知道如何在实体框架中实现1x1或1x0..1关系。

我怎么做?

首次尝试无法进行,因为当前EF版本根本不支持唯一键。 第二种方法不起作用,因为您的从属实体不能具有自动生成的键=必须将StoreGeneratedPattern设置为None

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM