我刚接触EF,正在尝试使用代码优先方法建立多对多的单向关系。例如,如果我有以下两个类(不是我的真实模型),它们之间存在N * N的关系,但“Customer”端没有导航属性。
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");
});
这个语法迫使我在“Customer”实体中拥有“WithMany”。下面的url说:“按照惯例,Code First总是将单向关系解释为一对多。”
是否可以覆盖它,或者我应该使用其他方法?