【发布时间】:2021-03-30 12:28:44
【问题描述】:
我有一个由 EF Core 5 提供支持的 api,并且我正在处理多对多关系(Artists 和 Releases表)。
即使这样,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();
【问题讨论】:
标签: c# .net asp.net-core-webapi entity-framework-core-5