C# EF Core 5,删除多对多关系

C# EF Core 5,删除多对多关系,c#,.net,asp.net-core-webapi,entity-framework-core-5,C#,.net,Asp.net Core Webapi,Entity Framework Core 5,我有一个由EF Core 5支持的api,我正在处理多对多关系(Artists和发行版表格) 即使是thaugh,后期动作也可以很好地工作,例如,对于artist,我决定不添加发送已经存在版本的GUID的可能性,而是只发送将同时创建的完整版本对象 那么,我如何将艺术家链接到现有版本?我试图在put操作中这样做,在Artist内部发送一个releaseDto list only contenting guid 这对于添加新的关系非常有效,ArtistRelease连接表确实已更新,但是我没有指定的

我有一个由EF Core 5支持的api,我正在处理多对多关系(Artists发行版表格)

即使是thaugh,后期动作也可以很好地工作,例如,对于artist,我决定不添加发送已经存在版本的GUID的可能性,而是只发送将同时创建的完整版本对象

那么,我如何将艺术家链接到现有版本?我试图在put操作中这样做,在Artist内部发送一个releaseDto list only contenting guid

这对于添加新的关系非常有效,ArtistRelease连接表确实已更新,但是我没有指定的GUID不会被删除,我不能删除关系,除非我正在删除艺术家或发行版。

所以我的问题是如何删除关系

你能给我一些帮助吗

var releases = Repository.Release.GetReleases(artistForUpdateDto.Releases, trackChanges: false);

if(releases.Count() != artistForUpdateDto.Releases.Count())
{
    Logger.LogInfo($"Some release ids are not valid in the ArtistForUpdateDto object");
    return NotFound();
}

Mapper.Map(artistForUpdateDto, artist);
artist.Releases = releases.ToList();

Repository.Save();

我找到了一个解决方案,我只需要用一个“include”来获取艺术家的作品就可以了

RepositoryContext.Set<T>().Where(expression).Include(includeExpression)
RepositoryContext.Set().Where(表达式).Include(includeExpression)
如果使用空列表保存艺术家,则将更新联接表:)