2012-01-08 57 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);