【问题标题】:Entity Framework 4.1 : The navigation property configured with One-to-One/zero mapping [duplicate]Entity Framework 4.1:配置了一对一/零映射的导航属性[重复]
【发布时间】:2012-01-08 10:51:27
【问题描述】:

可能重复:
Entity Framework 4.1 : The navigation property ‘BusinessUser’ declared on type ‘Login’ has been configured with conflicting multiplicities

我有两个实体

BusinessUser { Id(PK), Name,...}

Login { BusinessUserID(PK, FK), Email, Password, etc...}

BusinessUserLogin 之间的关系是一对零/一

我有以下配置 在 BusinessUser EF 配置类中

this.HasOptional(bu => bu.LoginInfo)
    .WithOptionalPrincipal(l => l.BusinessUser);

在登录EF配置类中

this.HasRequired(l => l.BusinessUser)
    .WithOptional(bu => bu.LoginInfo);

我收到以下异常

已配置在“登录”类型上声明的导航属性“业务用户” 具有相互冲突的多重性。

我首先在 EF 4.1 代码中的一对一/零配置有问题。

public class BusinessUser {
    public virtual int ID { get; set; }

    public virtual int BusinessID { get; set; }

    public virtual Business Business { get; set; }

    public Login LoginInfo { get; set; }
  }

 public class Login {
    public virtual int BusinessUserID { get; set; }

    public virtual string Email { get; set; }

    public virtual string Password { get; set; }

    public BUsinessUser BusinessUserInfo { get; set; }
  }

我也在寻找双向的。

【问题讨论】:

    标签: entity-framework orm entity-framework-4.1 ef-code-first


    【解决方案1】:

    您需要从BusinessUser 配置中删除以下映射。

    this.HasOptional(bu => bu.LoginInfo)
        .WithOptionalPrincipal(l => l.BusinessUser);
    

    在单一配置中配置关系就足够了。如果您需要从BusinessUser 配置映射它,您可以按如下方式进行。

    this.HasOptional(bu => bu.LoginInfo)
        .WithRequired(l => l.BusinessUser);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 2015-03-14
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      相关资源
      最近更新 更多