我正在尝试首先使用带有代码的 EF5 - 我需要制作一个带有额外字段的多对多表。
我有一个产品表、订单表,并且需要一个带有“尺寸”字段的订单产品表。
我所做的是创建了一个新的“ProductOrder”类,即它们之间的连接表,并进行了引用。
它在创建新订单时工作,但在获取订单时不工作 - 它没有获得连接的订单(插入后存在于数据库中)。
想法为什么?:)
我的课程是:
public class Order
{
public int ID { get; set; }
...
public ICollection<ProductOrder> Products { get; set; }
public Order()
{
Products = new HashSet<ProductOrder>();
}
}
public class Product
{
public int ID { get; set; }
public ICollection<ProductOrder> Orders { get; set; }
}
public class ProductOrder
{
public int ID { get; set; }
public int ProductID { get; set; }
public int OrderID { get; set; }
public int Size { get; set; }
[ForeignKey("OrderID")]
public Order order { get; set; }
[ForeignKey("ProductID")]
public Product product { get; set; }
}
并在 onModelCreating
modelBuilder.Entity<Order>()
.HasMany(p => p.Products)
.WithRequired(o => o.order)
.HasForeignKey(o => o.OrderID);
modelBuilder.Entity<Product>()
.HasMany(o => o.Orders)
.WithRequired(p => p.product)
.HasForeignKey(p => p.ProductID);