Entity Framework 4.1:配置了一对一/零映射的导航属性[重复]
Posted
技术标签:
【中文标题】Entity Framework 4.1:配置了一对一/零映射的导航属性[重复]【英文标题】:Entity Framework 4.1 : The navigation property configured with One-to-One/zero mapping [duplicate] 【发布时间】: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...
BusinessUser
和 Login
之间的关系是一对零/一。
我有以下配置 在 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;
我也在寻找双向的。
【问题讨论】:
【参考方案1】:您需要从BusinessUser
配置中删除以下映射。
this.HasOptional(bu => bu.LoginInfo)
.WithOptionalPrincipal(l => l.BusinessUser);
在单一配置中配置关系就足够了。如果您需要从BusinessUser
配置映射它,您可以按如下方式进行。
this.HasOptional(bu => bu.LoginInfo)
.WithRequired(l => l.BusinessUser);
【讨论】:
以上是关于Entity Framework 4.1:配置了一对一/零映射的导航属性[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Entity Framework 4.1 InverseProperty 属性和ForeignKey
卸载 Entity Framework 4.1 六月 CTP