【发布时间】:2011-11-15 12:01:44
【问题描述】:
我是 EF 新手,并试图通过代码优先方法获得多对多单向关系。例如,如果我有以下两个类(不是我的真实模型),它们之间的关系是 N * N,但“客户”端没有导航属性。
public class User {
public int UserId { get; set; }
public string Email { get; set; }
public ICollection TaggedCustomers { get; set; }
}
public class Customer {
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
映射代码看起来像...
modelBuilder.Entity()
.HasMany(r => r.TaggedCustomers)
.WithMany(c => c.ANavgiationPropertyWhichIDontWant)
.Map(m =>
{
m.MapLeftKey("UserId");
m.MapRightKey("CustomerId");
m.ToTable("BridgeTableForCustomerAndUser");
});
这种语法迫使我为“客户”实体使用“WithMany”。 以下url 表示“按照惯例,Code First 始终将单向关系解释为一对多。”
是否可以覆盖它,或者我应该使用任何其他方法?
【问题讨论】: