在模型类中定义导航属性和外键,使用Include()方法使EF Core能够将相关对象一起插入。
示例:
首先,定义两个模型类,一个是Order,另一个是OrderItem:
public class Order
{
public int Id { get; set; }
public string OrderNo { get; set; }
public List
public class OrderItem { public int Id { get; set; } public int OrderId { get; set; } public string ProductName { get; set; } public int Quantity { get; set; } public decimal Price { get; set; } public Order Order { get; set; } }
然后,在DbContext中,定义两个DbSet:
public class MyDbContext : DbContext
{
public DbSet
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasMany(o => o.OrderItems)
.WithOne(oi => oi.Order)
.HasForeignKey(oi => oi.OrderId);
}
}
最后,在Controller中,插入Order和OrderItem时,使用Include()方法:
public async Task
调用SaveChangesAsync()方法之前,将拥有多个OrderItem的Order实例添加到DbContext中,然后通过Include()方法一起插入:
public async Task
这样,就能成功插入包含多个OrderItem的Order实例了。