实体框架4.1:在"登录"类型上声明的导航属性"BusinessUser"已配置了冲突的多重性

Mah*_*esh 3 orm ado.net entity-framework ef-code-first entity-framework-4.1

我有两个实体

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

Login { BusinessUserID(PK, FK), Email, Password, etc...}
Run Code Online (Sandbox Code Playgroud)

BusinessUser和之间的关系Login一对一/一.

我在BusinessUser EF配置类中进行了以下配置

this.HasOptional(bu => bu.LoginInfo)
    .WithOptionalPrincipal(l => l.BusinessUser);
Run Code Online (Sandbox Code Playgroud)

在登录EF配置类中

this.HasRequired(l => l.BusinessUser)
    .WithOptional(bu => bu.LoginInfo);
Run Code Online (Sandbox Code Playgroud)

我得到以下异常

在"登录"类型上声明的导航属性"BusinessUser"已配置了冲突的多重性.

我首先在EF 4.1代码中使用我的一对一/零配置错误.

更新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; }
  }
Run Code Online (Sandbox Code Playgroud)

我也在寻找双向的.

Lad*_*nka 6

您的BusinessUser必须将关系配置为:

this.HasOptional(bu => bu.LoginInfo)
    .WithRequired(l => l.BusinessUser);
Run Code Online (Sandbox Code Playgroud)

两个配置必须相同(实际上只需要一个)并且第一个配置不正确,因为它试图定义0..1 - 0..1关系.