如何删除联接表多对多关系(ASP.NET)中的项

如何删除联接表多对多关系(ASP.NET)中的项,asp.net,asp.net-mvc,entity-framework,entity-framework-core,Asp.net,Asp.net Mvc,Entity Framework,Entity Framework Core,我正在尝试删除关系表“SongPlaylist”中的条目,但无法使用where选择条目,是否有删除此关系的解决方案 这是我的3款车型: public int SongId { get; set; } public IList<SongPlaylist> SongPlaylist { get; set; } 这就是我试图删除关系的方式: var RelationToDelete = _context.SongPlaylist.Where(x => x.PlaylistId =

我正在尝试删除关系表“SongPlaylist”中的条目,但无法使用where选择条目,是否有删除此关系的解决方案

这是我的3款车型:

public int SongId { get; set; }
public IList<SongPlaylist> SongPlaylist { get; set; }

这就是我试图删除关系的方式:

var RelationToDelete = _context.SongPlaylist.Where(x => x.PlaylistId == playlistId && x.SongId == songId).First();

我不想删除播放列表对象和歌曲对象,只想删除两者之间的关系。

您好,您是否尝试过将相关实体包括在内

比如:

var RelationToDelete = _context.SongPlaylist.include(yy=>yy.Playlist).Where(x => x.PlaylistId == playlistId && x.SongId == songId).First();
您可以尝试以下方法:

var removingRows= _context.Set<SongPlaylist>().Where(x => x.PlaylistId == playlistId && x.SongId == songId).ToArray();

if(removingRows != null)
{
_context.Set<SongPlaylist>().RemoveRange(removingRows);
_context.SaveChanges();
}

var removingRows=_context.Set()。其中(x=>x.playlid==playlid&&x.SongId==SongId.ToArray();
if(removingRows!=null)
{
_context.Set().removange(removingRows);
_SaveChanges();
}
如果您确定只需删除一行:

var removingRow=_context.Set<SongPlaylist>().Where(x => x.PlaylistId == playlistId && x.SongId == songId).FirstOrDefault();

if(removingRow != null)
{
_context.Set<SongPlaylist>().Remove(removingRow);
_context.SaveChanges();
}

var removingRow=_context.Set()。其中(x=>x.playlid==playlid&&x.SongId==SongId)。FirstOrDefault();
如果(removingRow!=null)
{
_context.Set().Remove(removingRow);
_SaveChanges();
}

不工作,我仍然有错误“对象引用未设置为对象的实例”。您确定要传递的id吗?
var removingRows= _context.Set<SongPlaylist>().Where(x => x.PlaylistId == playlistId && x.SongId == songId).ToArray();

if(removingRows != null)
{
_context.Set<SongPlaylist>().RemoveRange(removingRows);
_context.SaveChanges();
}

var removingRow=_context.Set<SongPlaylist>().Where(x => x.PlaylistId == playlistId && x.SongId == songId).FirstOrDefault();

if(removingRow != null)
{
_context.Set<SongPlaylist>().Remove(removingRow);
_context.SaveChanges();
}