在EF Core 5中保存相关数据(多对多),而不获取实际记录,可以通过以下步骤实现:
以下是一个示例代码,演示了如何在EF Core 5中保存相关数据(多对多):
// 定义实体类
public class A
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<AB> ABs { get; set; }
}
public class B
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<AB> ABs { get; set; }
}
public class AB
{
public int AId { get; set; }
public A A { get; set; }
public int BId { get; set; }
public B B { get; set; }
}
// 配置关系
public class ABConfiguration : IEntityTypeConfiguration<AB>
{
public void Configure(EntityTypeBuilder<AB> builder)
{
builder.HasKey(ab => new { ab.AId, ab.BId });
builder.HasOne(ab => ab.A)
.WithMany(a => a.ABs)
.HasForeignKey(ab => ab.AId);
builder.HasOne(ab => ab.B)
.WithMany(b => b.ABs)
.HasForeignKey(ab => ab.BId);
}
}
// 添加数据
var a1 = new A { Name = "A1" };
var a2 = new A { Name = "A2" };
var b1 = new B { Name = "B1" };
var b2 = new B { Name = "B2" };
var ab1 = new AB { A = a1, B = b1 };
var ab2 = new AB { A = a2, B = b1 };
var ab3 = new AB { A = a2, B = b2 };
// 保存数据
using (var context = new YourDbContext())
{
context.A.Add(a1);
context.A.Add(a2);
context.B.Add(b1);
context.B.Add(b2);
context.AB.Add(ab1);
context.AB.Add(ab2);
context.AB.Add(ab3);
context.SaveChanges();
}
这是一个简单的示例,演示了如何在EF Core 5中保存相关数据(多对多)。根据实际需求,你可以根据这个示例进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云