从 EF Core 中的子集合中删除一些项可以通过以下步骤实现:
public class ParentEntity
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<ChildEntity> Children { get; set; }
}
public class ChildEntity
{
public int Id { get; set; }
public string Name { get; set; }
}
public class YourDbContext : DbContext
{
public DbSet<ParentEntity> Parents { get; set; }
public DbSet<ChildEntity> Children { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ParentEntity>()
.HasMany(p => p.Children)
.WithOne()
.OnDelete(DeleteBehavior.Cascade);
}
}
using (var context = new YourDbContext())
{
var parent = context.Parents.Include(p => p.Children).FirstOrDefault(p => p.Id == parentId);
if (parent != null)
{
var childToRemove = parent.Children.FirstOrDefault(c => c.Id == childId);
if (childToRemove != null)
{
parent.Children.Remove(childToRemove);
context.SaveChanges();
}
}
}
这样,你就可以从 EF Core 中的子集合中删除指定的项了。
关于 EF Core 的更多信息和使用方法,你可以参考腾讯云的云数据库 TencentDB for MySQL,它是一种高性能、可扩展的云数据库解决方案,适用于各种规模的应用场景。你可以在腾讯云的官方网站上找到更多关于 TencentDB for MySQL 的详细介绍和文档:TencentDB for MySQL。
领取专属 10元无门槛券
手把手带您无忧上云