我有三个班级
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<User> Users { get; set; }
}
public class ProductXUser // Mapping class
{
public int Id { get; set; }
public int User_Id { get; set; }
public int Product_Id { get; set; }
public DateTime DateMapped { get; set; }
}
如何使用User
类作为映射表,在Product
类和ProductXUser
类之间映射多对多关系(使用Fluent API)?
答案 0 :(得分:3)
你做不到。将联结表公开为实体后,就无法使用多对多关系。您必须使用两个一对多关系。一个从User
到ProductXUser
,第二个从Product
到ProductXUser
。您还必须更改Product
和User
中的导航属性,以指向ProductXUser
的集合。只有当您不将联结表公开为实体时,才能将多对多关系直接起作用。