繁体   English   中英

EF Core 5,删除多对多关系

[英]EF Core 5, delete a relation many-to-many

我有一个由EF Core 5提供支持的 api 并且我正在处理多对多关系(艺术家发布表)。

即使这样,post 操作也能正常工作,以艺术家为例,我决定不添加发送现有版本的 Guid 的可能性,而只添加将同时创建的完整版本对象。

那么我如何将艺术家链接到已经存在的版本呢? 我试图在 put 动作中这样做,方法是在 artistD 内部发送一个 releaseDto 列表,只列出竞争的 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();

我找到了一个解决方案,我只需要使用“包含”来获取艺术家以获取其版本

RepositoryContext.Set<T>().Where(expression).Include(includeExpression)

如果我用一个空列表保存艺术家,连接表将被更新:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM