我有两个实体
BusinessUser { Id(PK), Name,...}
Login { BusinessUserID(PK, FK), Email, Password, etc...}
BusinessUser
与Login
之间的关系为一对一/一。
我正在进行以下配置 在BusinessUser EF配置类
中this.HasOptional(bu => bu.LoginInfo)
.WithOptionalPrincipal(l => l.BusinessUser);
在登录EF配置类
中this.HasRequired(l => l.BusinessUser)
.WithOptional(bu => bu.LoginInfo);
我遇到了异常
已配置在“登录”类型上声明的导航属性“BusinessUser” 具有相互冲突的多重性。
我首先在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; }
}
我也在寻找双向的。
答案 0 :(得分:4)
您需要从BusinessUser
配置中删除以下映射。
this.HasOptional(bu => bu.LoginInfo)
.WithOptionalPrincipal(l => l.BusinessUser);
在单一配置中配置关系就足够了。如果您需要从BusinessUser
配置映射,可以按照以下步骤进行映射。
this.HasOptional(bu => bu.LoginInfo)
.WithRequired(l => l.BusinessUser);