2012-01-08 77 views
2

可能重复配置:
Entity Framework 4.1 : The navigation property ‘BusinessUser’ declared on type ‘Login’ has been configured with conflicting multiplicities实体框架4.1的导航属性与一对1 /零映射

我有两个实体

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); 

我得到以下异常

的导航属性“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; } 
    } 

此外,我正在寻找双向。

回答

3

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

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

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

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