用过Code First。
有模型Product和User。一个用户可能有很多在线购买的产品,也有很多离线购买的产品。同时,该产品分别有线上购买的用户列表和线下购买的用户列表。
事实证明我们有 2 个多对多连接。如何在模型类中实现这个?
public class Product
{
public int Id { get; set; }
public int Price { get; set; }
public virtual ICollection<User> OnlineCustomers { get; set; }
public virtual ICollection<User> OfflineCustomers { get; set; }
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Product> OnlinePurchases { get; set; }
public virtual ICollection<Product> OfflinePurchases { get; set; }
}
据我所知,对于多对多关系,EF 会自动创建第三个表,并将其命名为ProductUsers. 但是如果有两个链接,那么多出来的表怎么命名呢?以及如何更改中间表的命名规则,哪个属性或 Fluent API?
流畅的API
一共有4张桌子:
Product, User, OnlineProductUsers, OfflineProductUsers数据注释
缺点是 EF 本身会为新表命名
一共有4张桌子:
Product, User, ProductUsers, ProductUser1